java 写一个http异步调用的案例
时间: 2024-04-04 15:35:43 浏览: 142
好的,以下是一个使用Java语言进行HTTP异步调用的示例代码:
```java
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class HttpAsyncDemo {
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://www.example.com")
.build();
final CountDownLatch latch = new CountDownLatch(1);
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
latch.countDown();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
System.out.println(response.body().string());
latch.countDown();
}
});
latch.await();
}
}
```
在这个示例中,我们使用了OkHttp作为HTTP客户端,发送了一个异步的HTTP请求。我们创建了一个CountDownLatch对象来等待响应的返回。在发送请求后,我们使用client.newCall(request).enqueue()方法来启动异步的HTTP请求。第一个参数是请求对象,第二个参数则是一个回调接口,用于处理响应结果。在回调方法中,我们可以对响应进行处理,并使用latch.countDown()方法来通知主线程等待结束。
需要注意的是,在异步请求中,我们不能直接使用返回值来获取响应结果,而是需要使用回调函数来处理响应结果。
阅读全文