【Android-010】【HttpClient使用】
2015-10-13 16:26
260 查看
Android学习目录
项目源码下载
HttpClient
发送get请求
创建一个客户端对象HttpClient client = new DefaultHttpClient();
创建一个get请求对象
HttpGet hg = new HttpGet(path);
发送get请求,建立连接,返回响应头对象
HttpResponse hr = hc.execute(hg);
获取状态行对象,获取状态码,如果为200则说明请求成功
if(hr.getStatusLine().getStatusCode() == 200){ //拿到服务器返回的输入流 InputStream is = hr.getEntity().getContent(); String text = Utils.getTextFromStream(is); }
发送post请求
//创建一个客户端对象 HttpClient client = new DefaultHttpClient(); //创建一个post请求对象 HttpPost hp = new HttpPost(path);
往post对象里放入要提交给服务器的数据
//要提交的数据以键值对的形式存在BasicNameValuePair对象中 List<NameValuePair> parameters = new ArrayList<NameValuePair>(); BasicNameValuePair bnvp = new BasicNameValuePair("name", name); BasicNameValuePair bnvp2 = new BasicNameValuePair("pass", pass); parameters.add(bnvp); parameters.add(bnvp2); //创建实体对象,指定进行URL编码的码表 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters, "utf-8"); //为post请求设置实体 hp.setEntity(entity);
异步HttpClient框架
AsyncHttpClient地址:https://github.com/AsyncHttpClient/async-http-client发送get请求
//创建异步的httpclient对象 AsyncHttpClient ahc = new AsyncHttpClient(); //发送get请求 ahc.get(path, new MyHandler());
注意AsyncHttpResponseHandler两个方法的调用时机
class MyHandler extends AsyncHttpResponseHandler{ //http请求成功,返回码为200,系统回调此方法 @Override public void onSuccess(int statusCode, Header[] headers, //responseBody的内容就是服务器返回的数据 byte[] responseBody) { Toast.makeText(MainActivity.this, new String(responseBody), 0).show(); } //http请求失败,返回码不为200,系统回调此方法 @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { Toast.makeText(MainActivity.this, "返回码不为200", 0).show(); } }
发送post请求
使用RequestParams对象封装要携带的数据//创建异步httpclient对象 AsyncHttpClient ahc = new AsyncHttpClient(); //创建RequestParams封装要携带的数据 RequestParams rp = new RequestParams(); rp.add("name", name); rp.add("pass", pass); //发送post请求 ahc.post(path, rp, new MyHandler());
相关文章推荐
- CentOS 使用SVN https 问题及解决方案
- 复杂网络相关资源,持续更新……
- OpenWrt下使用iperf测试多跳网络性能
- [Error: Unsupported configuration, downgrade Nodemailer to v0.7.1 or see the migration guide https:/
- Xcode 7 错误(Application Transport Security has blocked a cleartext HTTP (http://) resource load )
- HttpURLConnection的使用
- WCF服务端与使用HttpClient的Android客户端简单示例
- 浅谈TCP优化
- 首先,要申明一点,过去与现在,电影的字幕都不是问题。并且,网络如此自由,未来也不是问题。只是分享的平台不会一家独大,分享的途径方式也会多种多样。
- android http请求
- HttpMime 处理 多部件 POST 请求
- HttpMime 处理 多部件 POST 请求
- deeplearning系列(六)卷积神经网络
- DOS批处理笔记本连接WIFI和有线网络
- HttpClient请求服务器代码优化版
- HttpClient请求服务器代码优化版
- HttpClient 网络优化
- HttpClient 网络优化
- 关于 httpUrlConnection 的 setDoOutput 与 setDoInput
- Volley网络连接封装类