AsyncHttpClient
见名知意,AsyncHttpClient 对处理异步 Http 请求相当擅长,并通过匿名内部类处理回调结果,Http 异步请求均位于非 UI 线程,不会阻塞 UI 操作,通过线程池处理并发请求处理文件上传、下载、响应结果自动打包 JSON 格式。使用起来会很方便。
//GET请求//创建asynchttpclient
AsyncHttpClient client = new AsyncHttpClient();
<pre name="code" class="java" style="color: rgb(51, 51, 51); font-size: 14px; line-height: 22.4px;">//进行get 请求 <span style="font-family: 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', 'Microsoft Yahei', sans-serif; line-height: 22.4px;">当然这里也可以换成 new JsonHttpResponseHandler(),我们就能直接获得 JSON 数据了。</span>
client.get("http://www.google.com", new AsyncHttpResponseHandler() {
@Override
public void onStart() {
// called before request is started
}
//请求成功的回调方法
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
// called when response HTTP status is "200 OK"
}
//请求失败
@Override
public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
// called when response HTTP status is "4XX" (eg. 401, 403, 404)
}
@Override
public void onRetry(int retryNo) {
// called when request is retried
}
});</pre><pre name="code" class="java"> //POST 请求
AsyncHttpClient client = new AsyncHttpClient();<pre name="code" class="java" style="color: rgb(51, 51, 51); font-size: 14px; line-height: 22.4px;">//准备请求体的内容 RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");
//进行post请求 params 请求的参数封装 同上,这里一样可以改成处理 JSON 数据的方法
client.get("http://www.google.com", params, new
TextHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, String response) {
System.out.println(response);
}
@Override
public void onFailure(int statusCode, Header[] headers, String responseBody, Throwable error) {
Log.d("ERROR", error);
}
}
);
//请求失败
@Override
public void onFailure(int statusCode, Header[] headers,
byte[] responseBody, Throwable error) {
}
});
本文介绍了Android中使用AsyncHttpClient进行异步HTTP请求的方法,强调其在非UI线程处理请求、避免阻塞用户界面的优势。该库支持并发请求、文件上传下载以及JSON响应解析,为开发者提供了便捷的网络访问解决方案。
2129

被折叠的 条评论
为什么被折叠?



