网络连接/URL访问的开源框架android-async-http-master
1.下载:GITHUB - https://github.com/loopj/android-async-http
2.导包:
a.导源码:将\library\src下的文件夹全部复制粘贴放入项目的src下
b.导JAR包:将\releases下的相应版本的jar包复制粘贴到项目的libs目录下
3.使用:
注意是异步的,不能放在子线程中使用。
GET:
在需要进行的网络连接的代码处:
1.对url地址进行url编码
2.创建客户端对象
new AsyncHttpClient();
3.调用get方法,须要2个参数,一是请求地址,二是实现一个“异步http响应处理器”的接口AsyncHttpResponseHandler
4.覆盖接口中的onSuccess和onFailure方法
onSuccess(intstatusCode ,Header[] headers,byte[]responseBody){
}
onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error)
参数都是服务器返回的响应体的关键内容:
int statusCode:响应的状态码
Header[] headers:响应头的内容
byte[]responseBody:响应体,返回的内容的正文,将之转化为所求/可见的数据
Throwable error:如果请求失败返回的抛出的异常
4.总结:
此包是异步的http网络连接,可以直接在AsyncHttpResponseHandler接口的回调函数中进行UI的更新,而不用将消息发送给主线程处理UI更新。e.g.
onSuccess(…){findViewById(R.id.tv); tv.setText(“text”);}
Post:
流程基本相同,不过需要封装请求参数:
1.创建请求参数对象params,此类封装了一个HashMap<String,String>来存储kv对
new RequestParams();
2.向params添加键值对
params.put(“pwd”,pwd);
3.client对象调用post方法发送post请求
client.post(path,params,newAsyncHttpResponseHandler(){});