`
longgangbai
  • 浏览: 7349629 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于HttpClient的总结(一)

阅读更多

       关于Httpclient的使用总结如下:

(1)当HttpClient的实例不再需要时,可以使用连接管理器关闭
httpclient.getConnectionManager().shutdown();  
(2)针对HTTPs的协议的HttpClient请求必须用户和密码
 httpclient.getCredentialsProvider()
            .setCredentials(new AuthScope("localhost", 443), 
                new UsernamePasswordCredentials("username", "password"));
(3)如果不想获取HTTPClient返回的信息
   httpclient.abort();
   
(4)httpclient传送文件的方式
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://www.apache.org");
        File file = new File(args[0]);
        InputStreamEntity reqEntity = new InputStreamEntity(
                new FileInputStream(file), -1);
        reqEntity.setContentType("binary/octet-stream");
        reqEntity.setChunked(true);
        // It may be more appropriate to use FileEntity class in this particular 
        // instance but we are using a more generic InputStreamEntity to demonstrate
        // the capability to stream out data from any arbitrary source
        // 
        // FileEntity entity = new FileEntity(file, "binary/octet-stream"); 
        httppost.setEntity(reqEntity);
        System.out.println("executing request " + httppost.getRequestLine());
        HttpResponse response = httpclient.execute(httppost);
(5)获取Cookie的信息
        HttpClient httpclient = new DefaultHttpClient();
        // 创建一个本地Cookie存储的实例
        CookieStore cookieStore = new BasicCookieStore();
        //创建一个本地上下文信息
        HttpContext localContext = new BasicHttpContext();
        //在本地上下问中绑定一个本地存储
        localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
        //设置请求的路径
        HttpGet httpget = new HttpGet("http://www.google.com/"); 
        //传递本地的http上下文给服务器
        HttpResponse response = httpclient.execute(httpget, localContext);
        //获取本地信息
        HttpEntity entity = response.getEntity();
        System.out.println(response.getStatusLine());
        if (entity != null) {
            System.out.println("Response content length: " + entity.getContentLength());
        }
        //获取cookie中的各种信息
        List<Cookie> cookies = cookieStore.getCookies();
        for (int i = 0; i < cookies.size(); i++) {
            System.out.println("Local cookie: " + cookies.get(i));
        }
        //获取消息头的信息
        Header[] headers = response.getAllHeaders();
        for (int i = 0; i<headers.length; i++) {
            System.out.println(headers[i]);
        }
(6)针对典型的SSL请求的处理
        DefaultHttpClient httpclient = new DefaultHttpClient();
        //获取默认的存储密钥类
        KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType()); 
        //加载本地的密钥信息       
        FileInputStream instream = new FileInputStream(new File("my.keystore")); 
        try {
            trustStore.load(instream, "nopassword".toCharArray());
        } finally {
            instream.close();
        }
        //创建SSLSocketFactory,创建相关的Socket
        SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
        //设置协议的类型和密钥信息,以及断开信息
        Scheme sch = new Scheme("https", socketFactory, 443);
        //在连接管理器中注册中信息
        httpclient.getConnectionManager().getSchemeRegistry().register(sch);
(7)设置请求的参数的几种方式
A.在请求的路径中以查询字符串格式传递参数
B.在请求的实体中添加参数
        List <NameValuePair> nvps = new ArrayList <NameValuePair>();
        nvps.add(new BasicNameValuePair("IDToken1", "username"));
        nvps.add(new BasicNameValuePair("IDToken2", "password"));
        httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

 

分享到:
评论
4 楼 ycq__110 2012-02-26  
  
3 楼 longgangbai 2011-10-24  
Jelen_123 写道
不知道你有没有使用过htmlutil这个包,如何将cookie设置到htmlutil指向的页面中呢?

不好意思这个还真没有用过呢?
2 楼 Jelen_123 2011-10-23  
不知道你有没有使用过htmlutil这个包,如何将cookie设置到htmlutil指向的页面中呢?
1 楼 Jelen_123 2011-10-23  

相关推荐

    HTTPClient 的一个封装

    总结来说,HttpClient的封装是为了提高代码的可维护性和易用性,通过隐藏复杂实现细节,提供简洁的API接口,使开发更加高效。了解封装原理和实现方式对于Java网络编程非常重要,尤其是在处理大量HTTP请求的项目中。

    HttpClient总结.doc

    HttpClient是Apache Commons HttpClient库,它是一个Java库,用于执行HTTP和HTTPS请求。这个库提供了丰富的功能,使得在Java应用程序中处理HTTP通信变得简单且高效。以下是对HttpClient主要特性和使用方法的详细说明...

    httpclient官网教程中文版

    ### Httpclient官网教程中文版知识点总结 #### 一、引言 HTTP协议作为互联网的核心通信标准之一,在现代网络服务及物联网设备中扮演着至关重要的角色。随着技术的发展,越来越多的应用和服务依赖于HTTP协议来实现...

    httpclient.jar包下载

    在Java开发中,HTTP通信是不可或缺的一部分,而Apache HttpClient库正是Java实现HTTP客户端操作的重要工具。本文将深入探讨httpclient.jar包,以及它与code.jar包的关系,帮助开发者更好地理解和使用这两个组件。 ...

    httpclient4.2.1.zip

    总结,HttpClient 4.2.1作为Java开发中的HTTP通信工具,不仅具备高效、稳定的特性,还提供了强大的功能,使得开发者能够轻松应对各种HTTP需求。无论是简单的GET请求还是复杂的POST操作,HttpClient都能游刃有余,为...

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    总结,`commons-httpclient-3.0.jar`在JAVA中的应用,不仅提供了一种简单易用的HTTP客户端实现,还具有丰富的特性和扩展性,对于理解和实现网络通信具有重要的学习价值。然而,随着技术的进步,开发者应关注并适时...

    httpClient实例httpClient调用 http/https实例 忽略SSL验证

    总结来说,HttpClient提供了一个强大而灵活的接口来处理HTTP请求,而忽略SSL验证的配置则允许我们在非生产环境中快速地进行测试和开发。但请记住,忽视SSL验证在生产环境中可能会导致安全隐患,务必谨慎对待。

    Java HttpClient 全部的jar包

    总结起来,这些jar包共同构成了一个完整的Java HttpClient环境,能够处理各种复杂的HTTP通信任务,从简单的GET和POST请求到复杂的文件上传、多部分表单数据处理,以及与Web服务器的高级交互。开发者可以根据项目需求...

    httpclient4.3工具类

    总结起来,`httpclient4.3工具类`是一个针对HttpClient 4.3的自定义包装,它封装了常见的HTTP操作,提供了便捷的接口供项目中使用。理解这个工具类的内部实现和HttpClient的核心概念,将有助于更好地利用它进行HTTP...

    httpclient

    HttpClient,作为Java领域中的一个强大库,是网络爬虫开发中的核心组件。它提供了丰富的API,使得开发者能够高效、灵活地进行HTTP请求的发送与响应的处理,从而实现数据的抓取。在本文中,我们将深入探讨HttpClient...

    httpclient-4.5.jar

    总结,`httpclient-4.5.jar`及其相关依赖提供了全面的HTTP客户端功能,适用于各种Java应用程序,无论是简单的HTTP请求,还是复杂的HTTP交互,都能得心应手。通过深入了解和恰当配置,你可以充分利用这个库的优势,...

    httpclient-4.5.3官方API中文文档_最新译版_2886K

    总结,HttpClient 4.5.3版本为开发者提供了强大而灵活的HTTP客户端工具,通过理解并熟练掌握其API和核心概念,我们可以更高效地进行HTTP通信,提升应用程序的质量和性能。对于Java开发者来说,HttpClient无疑是一个...

    httpclient4.5源码学习

    总结,HttpClient 4.5 是一款强大且灵活的 HTTP 客户端库,其源码结构清晰,设计模式巧妙,通过深入学习和实践,开发者可以更好地利用它来实现高效、安全的网络通信。理解 HttpClient 4.5 的源码,不仅有助于我们...

    httppost和httpclient一组开发包

    总结来说,`HttpClient`和`HttpPost`是Android开发中处理HTTP请求的重要工具,虽然已不再被官方推荐,但它们的稳定性和灵活性使其在某些情况下仍然具有较高的实用性。了解和掌握这些知识,可以帮助开发者更好地进行...

    httpclient4.3中文教程

    总结来说,HttpClient 4.3 是一个专为 HTTP 通信设计的库,它提供了高效、易用的接口,用于构造和执行各种 HTTP 请求。开发者可以利用它来实现与 Web 服务的交互、爬虫、数据抓取等任务,而无需关心底层的网络细节。...

    httpclient3.1 javadoc chm版

    总结,HttpClient 3.1 JavaDoc CHM版为开发者提供了全面的API文档,帮助他们理解和使用HttpClient进行HTTP通信。虽然HttpClient已经更新到更高级的版本,但这个旧版本的文档对于维护旧项目或理解HTTP通信基础仍然...

    HttpClient实现文件下载

    - **GetMethod**:用于执行GET请求的方法,是 HttpClient 中的一个类。 - **RetryHandler**:处理请求失败时的重试逻辑,默认情况下 HttpClient 会自动重试一定次数。 - **HTTP状态码**:用来表示请求的状态,如200...

    httpclient jar

    一、HttpClient简介 HttpClient是Apache软件基金会的一个开源项目,其主要目标是为Java开发者提供一个功能丰富、性能高效、易用且可定制的HTTP客户端编程工具包。它支持HTTP/1.1和部分HTTP/2规范,可以处理复杂的...

    HTTPCLIENT

    总结来说,HTTPCLIENT是一个强大的Java HTTP客户端库,与日志框架(如Log4j)结合使用,可以实现详细的请求跟踪和问题排查。同时,它利用Commons Codec库进行数据编码解码,确保数据在网络中的正确传输。理解和掌握...

    httpclient4.1.2 jar包

    一、HttpClient 4.1.2概述 HttpClient 4.1.2是HttpClient库的稳定版本,它主要关注性能提升、错误修复和新特性的引入。该版本支持HTTP/1.1协议,并兼容部分HTTP/2特性,提供了异步和同步两种API,满足不同场景的...

Global site tag (gtag.js) - Google Analytics