关于HttpClient的总结

转载 2015年11月20日 18:25:52

转载地址:http://blog.csdn.net/shimiso/article/details/7047447


关于Httpclient4的使用总结如下:

  1. (1)当HttpClient的实例不再需要时,可以使用连接管理器关闭   
  2. httpclient.getConnectionManager().shutdown();    

  1. (2)针对HTTPs的协议的HttpClient请求必须用户和密码   
  2.  httpclient.getCredentialsProvider()   
  3.             .setCredentials(new AuthScope("localhost"443),    
  4.                 new UsernamePasswordCredentials("username""password"));  
  1. (3)如果不想获取HTTPClient返回的信息   
  2.    httpclient.abort();  
 
  1.       
  2. (4)httpclient传送文件的方式   
  3.         HttpClient httpclient = new DefaultHttpClient();   
  4.         HttpPost httppost = new HttpPost("http://www.apache.org");   
  5.         File file = new File(args[0]);   
  6.         InputStreamEntity reqEntity = new InputStreamEntity(   
  7.                 new FileInputStream(file), -1);   
  8.         reqEntity.setContentType("binary/octet-stream");   
  9.         reqEntity.setChunked(true);   
  10.         // It may be more appropriate to use FileEntity class in this particular   
  11.         // instance but we are using a more generic InputStreamEntity to demonstrate  
  12.         // the capability to stream out data from any arbitrary source  
  13.         //    
  14.         // FileEntity entity = new FileEntity(file, "binary/octet-stream");   
  15.         httppost.setEntity(reqEntity);   
  16.         System.out.println("executing request " + httppost.getRequestLine());   
  17.         HttpResponse response = httpclient.execute(httppost);  
 
  1. (5)获取Cookie的信息   
  2.         HttpClient httpclient = new DefaultHttpClient();   
  3.         // 创建一个本地Cookie存储的实例   
  4.         CookieStore cookieStore = new BasicCookieStore();   
  5.         //创建一个本地上下文信息   
  6.         HttpContext localContext = new BasicHttpContext();   
  7.         //在本地上下问中绑定一个本地存储   
  8.         localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);   
  9.         //设置请求的路径   
  10.         HttpGet httpget = new HttpGet("http://www.google.com/");    
  11.         //传递本地的http上下文给服务器   
  12.         HttpResponse response = httpclient.execute(httpget, localContext);   
  13.         //获取本地信息   
  14.         HttpEntity entity = response.getEntity();   
  15.         System.out.println(response.getStatusLine());   
  16.         if (entity != null) {   
  17.             System.out.println("Response content length: " + entity.getContentLength());   
  18.         }   
  19.         //获取cookie中的各种信息   
  20.         List<Cookie> cookies = cookieStore.getCookies();   
  21.         for (int i = 0; i < cookies.size(); i++) {   
  22.             System.out.println("Local cookie: " + cookies.get(i));   
  23.         }   
  24.         //获取消息头的信息   
  25.         Header[] headers = response.getAllHeaders();   
  26.         for (int i = 0; i<headers.length; i++) {   
  27.             System.out.println(headers[i]);   
  28.         }  

 
  1. (6)针对典型的SSL请求的处理   
  2.         DefaultHttpClient httpclient = new DefaultHttpClient();   
  3.         //获取默认的存储密钥类   
  4.         KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());    
  5.         //加载本地的密钥信息          
  6.         FileInputStream instream = new FileInputStream(new File("my.keystore"));    
  7.         try {   
  8.             trustStore.load(instream, "nopassword".toCharArray());   
  9.         } finally {   
  10.             instream.close();   
  11.         }   
  12.         //创建SSLSocketFactory,创建相关的Socket   
  13.         SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);   
  14.         //设置协议的类型和密钥信息,以及断开信息   
  15.         Scheme sch = new Scheme("https", socketFactory, 443);   
  16.         //在连接管理器中注册中信息   
  17.         httpclient.getConnectionManager().getSchemeRegistry().register(sch);  
 
  1. (7)设置请求的参数的几种方式   
  2. A.在请求的路径中以查询字符串格式传递参数   
  3. B.在请求的实体中添加参数   
  4.         List <NameValuePair> nvps = new ArrayList <NameValuePair>();   
  5.         nvps.add(new BasicNameValuePair("IDToken1""username"));   
  6.         nvps.add(new BasicNameValuePair("IDToken2""password"));   
  7.         httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 


关于HttpClient的总结

原文地址:http://blog.csdn.net/shimiso/article/details/7047447 关于Httpclient的使用总结如下: (1)当HttpClie...
  • jolingogo
  • jolingogo
  • 2013年09月12日 18:56
  • 1371

HttpClient容易忽视的细节——连接关闭

HttpClient client = new HttpClient();   HttpMethod method = new GetMethod("http://www.apache.org");...
  • waysoflife
  • waysoflife
  • 2016年01月24日 14:19
  • 3198

HttpClient初步使用方法

HttpClient简单使用 准备          Apache官网下载 HttpClient , 下不了的点击这里,下载完后解压取lib文件夹中jar包导入到项目中, 还需要导入common...
  • weiqubo
  • weiqubo
  • 2015年06月15日 19:40
  • 2718

HttpClient总结.doc

  • 2013年03月02日 11:40
  • 78KB
  • 下载

HttpClient和HtmlUnit的比较总结以及使用技巧(一)

大家在做爬虫、网页采集、通过网页自动写入数据时基本上都接触过这两个组件(权且称之为组件吧),网上入门资料已经很多了,我想从实际的应用角度谈谈我对于这两个组件的看法,并记录在博客中,以便日后翻阅,欢迎大...
  • cslie
  • cslie
  • 2015年09月25日 17:11
  • 2072

httpClient发送get和post参数形式总结

最近工作中接触到httpClient类,于是简单总结了下,发现形式并不复杂: 这里对于get请求形式,比较简单,只需要把参数加到地址上,一起执行即可 CloseableHttpAsyncC...
  • u014078154
  • u014078154
  • 2017年07月21日 20:05
  • 85

对接 亿美短信平台 总结(HttpClient的使用)

最近做项目,需要使用“亿美”的短信服务,其实没多少内容,主要就是发送http请求,完成后,在此总结一番。 1、亿美软通SDK开发说明      亿美短信SDK:是针对独立软件开发商(ISV)和系统集成...
  • zhengchao1991
  • zhengchao1991
  • 2016年12月14日 15:19
  • 3259

浅谈httpClient使用总结

浅谈httpClient使用总结       目前C/S还是B/S结构的应用程序, HTTP 应该是最为广泛使用的协议了。在 Java 平台上,Java 标准库提供了 一个HttpURLCo...
  • u013065023
  • u013065023
  • 2017年04月26日 12:07
  • 753

httpClient使用总结

一. httpClient初认识       虽然JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。  ...
  • cuidiwhere
  • cuidiwhere
  • 2013年12月15日 19:16
  • 25766

httpclient超时总结

Httpclient超时 背景: 网站这边多次因为httpclient调用超时时间没设置好导致关掉,影响非常不好,而且问题重复出现,查看网络,没有比较明确介绍httpcli...
  • madding
  • madding
  • 2012年06月06日 16:26
  • 20807
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于HttpClient的总结
举报原因:
原因补充:

(最多只允许输入30个字)