HttpUtils.sendGet同步请求和异步请求怎么写
时间: 2024-05-17 17:18:48 浏览: 138
HttpUtils.sendGet是一个同步请求,如果要实现异步请求,可以使用Java中的多线程技术或者使用第三方库,比如OkHttp或者AsyncHttpClient。
使用多线程实现异步请求的示例代码如下:
```java
public class MyThread extends Thread {
private String url;
public MyThread(String url) {
this.url = url;
}
public void run() {
// 发送HTTP GET请求
String result = HttpUtils.sendGet(url);
// 处理响应结果
// ...
}
}
// 创建线程并启动
MyThread thread = new MyThread("http://www.example.com/api");
thread.start();
```
使用OkHttp实现异步请求的示例代码如下:
```java
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://www.example.com/api")
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
// 请求失败处理
}
@Override
public void onResponse(Call call, Response response) throws IOException {
// 处理响应结果
String result = response.body().string();
// ...
}
});
```
使用AsyncHttpClient实现异步请求的示例代码如下:
```java
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://www.example.com/api", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
// 处理响应结果
String result = new String(responseBody);
// ...
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
// 请求失败处理
}
});
```
阅读全文