httpclient4.2.2的几个常用方法,登录之后访问页面问题,下载文件 httpclient 4.2.5.zip

在工作中要用到android,然后进行网络请求的时候,打算使用httpClient。

总结一下httpClient的一些基本使用。

版本是4.2.2。

使用这个版本的过程中,百度很多,结果都是出现的org.apache.commons.httpclient.这个包名,而不是我这里的org.apache.http.client.HttpClient----------前者版本是Commons HttpClient 3.x,不是最新的版本HttpClient 4.×。

官网上面:

Commons HttpClient 3.xcodeline is at the end of life. All users of Commons HttpClient 3.xare strongly encouraged to upgrade to HttpClient 4.1.

1.基本的get

Java代码
  1. publicvoidgetUrl(Stringurl,Stringencoding)
  2. throwsClientProtocolException,IOException{
  3. //默认的client类。
  4. HttpClientclient=newDefaultHttpClient();
  5. //设置为get取连接的方式.
  6. HttpGetget=newHttpGet(url);
  7. //得到返回的response.
  8. HttpResponseresponse=client.execute(get);
  9. //得到返回的client里面的实体对象信息.
  10. HttpEntityentity=response.getEntity();
  11. if(entity!=null){
  12. System.out.println("内容编码是:"+entity.getContentEncoding());
  13. System.out.println("内容类型是:"+entity.getContentType());
  14. //得到返回的主体内容.
  15. InputStreaminstream=entity.getContent();
  16. try{
  17. BufferedReaderreader=newBufferedReader(
  18. newInputStreamReader(instream,encoding));
  19. System.out.println(reader.readLine());
  20. }catch(Exceptione){
  21. e.printStackTrace();
  22. }finally{
  23. instream.close();
  24. }
  25. }
  26. //关闭连接.
  27. client.getConnectionManager().shutdown();
  28. }

2.基本的Post

下面的params参数,是在表单里面提交的参数。

httpclient4.2.2的几个常用方法,登录之后访问页面问题,下载文件 httpclient 4.2.5.zip
Java代码 cookies =httpclient.getCookieStore().getCookies(); if (cookies.isEmpty()) {System.out.println("None"); } else { for (int i = 0; i <cookies.size(); i++) { System.out.println("- " +cookies.get(i).toString()); } } } finally { // 关闭请求httpclient.getConnectionManager().shutdown(); } }" quality="high"allowscriptaccess="always" type="application/x-shockwave-flash"pluginspage="http://www.macromedia.com/go/getflashplayer">
  1. publicvoidpostUrlWithParams(Stringurl,Mapparams,Stringencoding)
  2. throwsException{
  3. DefaultHttpClienthttpclient=newDefaultHttpClient();
  4. try{
  5. HttpPosthttpost=newHttpPost(url);
  6. //添加参数
  7. Listnvps=newArrayList();
  8. if(params!=null&&params.keySet().size()>0){
  9. Iteratoriterator=params.entrySet().iterator();
  10. while(iterator.hasNext()){
  11. Map.Entryentry=(Entry)iterator.next();
  12. nvps.add(newBasicNameValuePair((String)entry.getKey(),
  13. (String)entry.getValue()));
  14. }
  15. }
  16. httpost.setEntity(newUrlEncodedFormEntity(nvps,Consts.UTF_8));
  17. HttpResponseresponse=httpclient.execute(httpost);
  18. HttpEntityentity=response.getEntity();
  19. System.out.println("Loginformget:"+response.getStatusLine()
  20. +entity.getContent());
  21. dump(entity,encoding);
  22. System.out.println("Postlogoncookies:");
  23. Listcookies=httpclient.getCookieStore().getCookies();
  24. if(cookies.isEmpty()){
  25. System.out.println("None");
  26. }else{
  27. for(inti=0;i<cookies.size();i++){
  28. System.out.println("-"+cookies.get(i).toString());
  29. }
  30. }
  31. }finally{
  32. //关闭请求
  33. httpclient.getConnectionManager().shutdown();
  34. }
  35. }

3。打印页面输出的小代码片段

Java代码
  1. privatestaticvoiddump(HttpEntityentity,Stringencoding)
  2. throwsIOException{
  3. BufferedReaderbr=newBufferedReader(newInputStreamReader(
  4. entity.getContent(),encoding));
  5. System.out.println(br.readLine());
  6. }

4.常见的登录session问题,需求:使用账户,密码登录系统之后,然后再访问页面不出错。

特别注意,下面的httpclient对象要使用一个,而不要在第二次访问的时候,重新new一个。至于如何保存这个第一步经过了验证的httpclient,有很多种方法实现。单例,系统全局变量(android下面的Application),ThreadLocal变量等等。

以及下面创建的httpClient要使用ThreadSafeClientConnManager对象!

public StringgetSessionId(String url, Map params, String encoding,

Java代码
  1. Stringurl2)throwsException{
  2. DefaultHttpClienthttpclient=newDefaultHttpClient(
  3. newThreadSafeClientConnManager());
  4. try{
  5. HttpPosthttpost=newHttpPost(url);
  6. //添加参数
  7. Listnvps=newArrayList();
  8. if(params!=null&&params.keySet().size()>0){
  9. Iteratoriterator=params.entrySet().iterator();
  10. while(iterator.hasNext()){
  11. Map.Entryentry=(Entry)iterator.next();
  12. nvps.add(newBasicNameValuePair((String)entry.getKey(),
  13. (String)entry.getValue()));
  14. }
  15. }
  16. //设置请求的编码格式
  17. httpost.setEntity(newUrlEncodedFormEntity(nvps,Consts.UTF_8));
  18. //登录一遍
  19. httpclient.execute(httpost);
  20. //然后再第二次请求普通的url即可。
  21. httpost=newHttpPost(url2);
  22. BasicResponseHandlerresponseHandler=newBasicResponseHandler();
  23. System.out.println(httpclient.execute(httpost,responseHandler));
  24. }finally{
  25. //关闭请求
  26. httpclient.getConnectionManager().shutdown();
  27. }
  28. return"";
  29. }

5.下载文件,例如mp3等等。

Java代码
  1. //第一个参数,网络连接;第二个参数,保存到本地文件的地址
  2. publicvoidgetFile(Stringurl,StringfileName){
  3. HttpClienthttpClient=newDefaultHttpClient();
  4. HttpGetget=newHttpGet(url);
  5. try{
  6. ResponseHandler<<span>byte[]>handler=newResponseHandler<<span>byte[]>(){
  7. publicbyte[]handleResponse(HttpResponseresponse)
  8. throwsClientProtocolException,IOException{
  9. HttpEntityentity=response.getEntity();
  10. if(entity!=null){
  11. returnEntityUtils.toByteArray(entity);
  12. }else{
  13. returnnull;
  14. }
  15. }
  16. };
  17. byte[]charts=httpClient.execute(get,handler);
  18. FileOutputStreamout=newFileOutputStream(fileName);
  19. out.write(charts);
  20. out.close();
  21. }catch(Exceptione){
  22. e.printStackTrace();
  23. }finally{
  24. httpClient.getConnectionManager().shutdown();
  25. }
  26. }

6.创建一个多线程环境下面可用的httpClient

(原文:http://blog.csdn.net/jiaoshi0531/article/details/6459468)

Java代码

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/193774.html

更多阅读

台式机电脑黑屏的几个原因 笔记本电脑黑屏的原因

台式机电脑黑屏的几个原因——简介电脑的普及率越来越高,在人们的生活和工作过程起着越来越大的作用,然而,有许多情况是在使用电脑的过程中电脑突然就黑屏了,对于新手来说往往会措手不及,现在我来分享下自己遇到的几个电脑黑屏的原因;台

真正网络赚钱的几个方法 网络上赚钱的方法

真正网络赚钱的几个方法——简介网络赚钱、网上赚钱,简称网赚。顾名思义,“网赚”指的就是利用电脑、服务器等设备通过Internet(因特网)从网络上获利的赚钱方式。网赚方式千奇百怪,方法多多,但很多都是骗人的,或者说赚到的很少,根本就是

转载 从网上找的几个学习服装裁剪的网址

原文地址:从网上找的几个学习服装裁剪的网址作者:甘露http://www.vivifz.cn/video/index.php/video/index/269/series/1/plid/24裤子裁剪制作http://www.efv.com.cn/list.php?catid=35&amp;deep=2&amp;typeid=607&amp;page=1郑嵘服装

声明:《httpclient4.2.2的几个常用方法,登录之后访问页面问题,下载文件 httpclient 4.2.5.zip》为网友奋斗峥嵘分享!如侵犯到您的合法权益请联系我们删除