android学习——使用开源程序AsyncHttpClient访问网络

本文介绍了Android中使用AsyncHttpClient进行异步HTTP请求的方法,强调其在非UI线程处理请求、避免阻塞用户界面的优势。该库支持并发请求、文件上传下载以及JSON响应解析,为开发者提供了便捷的网络访问解决方案。
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) {
		
	}
});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值