博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpClient的一种简单实现Demo
阅读量:7286 次
发布时间:2019-06-30

本文共 5502 字,大约阅读时间需要 18 分钟。

1 /**  2  * 测试HttpClient2种请求网络方式的Activity  3  * get和post  4  *  5  */  6 public class HttpClientActivity extends Activity {  7     private HttpParams httpParams ;  8     private HttpClient httpClient ;  9     @Override 10     protected void onCreate(Bundle savedInstanceState) { 11         super.onCreate(savedInstanceState); 12         setContentView(R.layout.activity_httpclient); 13         EditText et1 = (EditText) this.findViewById(R.id.et1); 14         List
params = new ArrayList
(); 15 params.add(new BasicNameValuePair("email", "firewings.r@gmail.com")); 16 params.add(new BasicNameValuePair("password", "954619")); 17 params.add(new BasicNameValuePair("remember", "1")); 18 params.add(new BasicNameValuePair("from", "kx")); 19 params.add(new BasicNameValuePair("login", "登录")); 20 params.add(new BasicNameValuePair("refcode", "")); 21 params.add(new BasicNameValuePair("refuid", "0")); 22 Map params2 = new HashMap(); 23 params2.put("hl", "zh-CN"); 24 params2.put("source", "hp"); 25 params2.put("q", "haha"); 26 params2.put("aq", "f"); 27 params2.put("aqi", "g10"); 28 params2.put("aql", ""); 29 params2.put("oq", ""); 30 String url2 = "http://www.google.cn/search"; 31 String url = "http://wap.kaixin001.com/home/"; 32 33 getHttpClient(); 34 et1.setText(doPost(url, params)); 35 // et1.setText(doGet(url2, params2)); 36 37 } 38 /** 39 * get 方式发送网络请求 40 * @param url url地址 41 * @param params 请求参数 42 * @return 返回请求结果statusLine状态行数据 43 */ 44 public String doGet(String url,Map params){ 45 /* 建立HTTPGet对象 */ 46 String paramStr = ""; 47 Iterator iter = params.entrySet().iterator(); 48 while(iter.hasNext()){ 49 Map.Entry entry = (Entry) iter.next(); 50 Object key = entry.getKey(); 51 Object val = entry.getValue(); 52 paramStr += paramStr = "&" + key + "=" + val ; 53 } 54 if(!paramStr.equals("")){ 55 paramStr.replaceFirst("&", "?"); 56 url += paramStr; 57 } 58 HttpGet httpRequest = new HttpGet(url); 59 String strResult = "doGetError"; 60 try { 61 /* 发动请求并等待回应 */ 62 HttpResponse httpResponse = httpClient.execute(httpRequest); 63 /* 若状态码为200 ok */ 64 if(httpResponse.getStatusLine().getStatusCode() == 200){ 65 /* 读返回数据 */ 66 strResult = EntityUtils.toString(httpResponse.getEntity()); 67 }else{ 68 strResult = "Error Response : " + httpResponse.getStatusLine().toString(); 69 } 70 } catch (ClientProtocolException e) { 71 strResult = e.getMessage().toString(); 72 e.printStackTrace(); 73 } catch (IOException e) { 74 strResult = e.getMessage().toString(); 75 e.printStackTrace(); 76 } 77 return strResult; 78 } 79 /** 80 * 81 * @param url 82 * @param params 83 * @return 服务器返回的数据 httpResponse.getEntity() 84 */ 85 public String doPost(String url,List
params){ 86 /* 建立HTTPPost对象 */ 87 HttpPost httpRequest = new HttpPost(url); 88 String strResult = "doPostError"; 89 try { 90 /* 添加请求参数到请求对象 */ 91 httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); 92 /* 发送请求并等待响应 */ 93 HttpResponse httpResponse = httpClient.execute(httpRequest); 94 /* 若状态码 为 200 */ 95 if(httpResponse.getStatusLine().getStatusCode() == 200){ 96 /* 读返回数据 */ 97 strResult = EntityUtils.toString(httpResponse.getEntity()); 98 }else{ 99 strResult = "Error Response : " + httpResponse.getStatusLine().toString();100 }101 } catch (ClientProtocolException e) {102 strResult = e.getMessage().toString();103 e.printStackTrace();104 } catch (IOException e) {105 strResult = e.getMessage().toString();106 e.printStackTrace();107 }108 return strResult;109 }110 /**111 * 获取一个HttpClient对象112 * @return 返回一个HttpClient对象113 */114 public HttpClient getHttpClient(){115 //创建HttpParams以用来设置HTTP参数(这一部分不是必须的)116 this.httpParams = new BasicHttpParams();117 //设置连接超时和socket超时,以及socket缓存大小118 HttpConnectionParams.setConnectionTimeout(httpParams, 20 * 1000);119 HttpConnectionParams.setSoTimeout(httpParams, 20 * 1000);120 HttpConnectionParams.setSocketBufferSize(httpParams, 8196);121 //设置重定向,默认为true122 HttpClientParams.setRedirecting(httpParams, true);123 //设置user agent124 String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6";125 HttpProtocolParams.setUserAgent(httpParams, userAgent);126 //创建一个HttpClient实例127 //注意 HttpClient httpClient = new HttpClient();是Commons HttpClient 中的用法128 //在Android 1.5 中我们需要使用 Apache 的缺省实现 DefaultHttpClient129 httpClient = new DefaultHttpClient();130 return httpClient;131 }132 }

 

转载于:https://www.cnblogs.com/wangziqiang/p/3769898.html

你可能感兴趣的文章
路由器怎么设置映射?
查看>>
LayoutAnimation的使用
查看>>
苹果电脑Mac很久不用,accountsd Messages 登陆钥匙串一直提示输入密码 错误
查看>>
jquery获得select option的值 和对select option的操作
查看>>
XSuperNEST——成本小管家
查看>>
Android之Bundle传递数据详解与实例及Bundle与SharedPreferences的区别
查看>>
struts1、 struts2所有版本jar包下载地址大全
查看>>
如何电脑上怎样查看微信聊天记录
查看>>
Thrift 基础架构
查看>>
many-to-many
查看>>
java中的多态
查看>>
Python 函数式编程--装饰器
查看>>
11月28号
查看>>
DAS、NAS、SAN、iSCSI 存储方案概述
查看>>
为VMware esxi主机配置系统日志记录
查看>>
给批量用户设磁盘配额
查看>>
Docker常见问题总结(持续更新)
查看>>
5-6单元练习
查看>>
以普通用户启动的Vim如何保存需要root权限的文件
查看>>
客户端和浏览器都不能连接SVN服务器
查看>>