`
huanyq2008
  • 浏览: 172188 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

httpclient4相关资料记录

阅读更多

import java.net.Socket;

import org.apache.http.ConnectionReuseStrategy;
import org.apache.http.Header;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
import org.apache.http.impl.DefaultHttpClientConnection;
import org.apache.http.message.BasicHttpRequest;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.BasicHttpProcessor;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.HttpRequestExecutor;
import org.apache.http.protocol.RequestConnControl;
import org.apache.http.protocol.RequestContent;
import org.apache.http.protocol.RequestExpectContinue;
import org.apache.http.protocol.RequestTargetHost;
import org.apache.http.protocol.RequestUserAgent;
import org.apache.http.util.EntityUtils;

/**
* HttpClient读取页面的使用例子
*/
public class HttpGet {
  public static void main(String[] args) throws Exception {

    HttpParams params = new BasicHttpParams();
    // HTTP 协议的版本,1.1/1.0/0.9
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
    // 字符集
    HttpProtocolParams.setContentCharset(params, "UTF-8");
    // 伪装的浏览器类型
    // IE7 是
    // Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)
    //
    // Firefox3.03
    // Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
    //
    HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
    HttpProtocolParams.setUseExpectContinue(params, true);

    BasicHttpProcessor httpproc = new BasicHttpProcessor();

    httpproc.addInterceptor(new RequestContent());
    httpproc.addInterceptor(new RequestTargetHost());

    httpproc.addInterceptor(new RequestConnControl());
    httpproc.addInterceptor(new RequestUserAgent());
    httpproc.addInterceptor(new RequestExpectContinue());

    HttpRequestExecutor httpexecutor = new HttpRequestExecutor();

    HttpContext context = new BasicHttpContext(null);
    HttpHost host = new HttpHost("www.java2000.net", 80);

    DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
    ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();

    context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
    context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);

    try {

      String[] targets = { "/", "/help.jsp" };

      for (int i = 0; i < targets.length; i++) {
        if (!conn.isOpen()) {
          Socket socket = new Socket(host.getHostName(), host.getPort());
          conn.bind(socket, params);
        }
        BasicHttpRequest request = new BasicHttpRequest("GET", targets[i]);
        System.out.println(">> Request URI: " + request.getRequestLine().getUri());

        context.setAttribute(ExecutionContext.HTTP_REQUEST, request);
        request.setParams(params);
        httpexecutor.preProcess(request, httpproc, context);
        HttpResponse response = httpexecutor.execute(request, conn, context);
        response.setParams(params);
        httpexecutor.postProcess(response, httpproc, context);

        // 返回码
        System.out.println("<< Response: " + response.getStatusLine());
        // 返回的文件头信息
        Header[] hs = response.getAllHeaders();
        for (Header h : hs) {
          System.out.println(h.getName() + ":" + h.getValue());
        }
        // 输出主体信息
        System.out.println(EntityUtils.toString(response.getEntity()));
        System.out.println("==============");
        if (!connStrategy.keepAlive(response, context)) {
          conn.close();
        } else {
          System.out.println("Connection kept alive...");
        }
      }
    } finally {
      conn.close();
    }
  }
}

HTTPClient官方网站下载:http://hc.apache.org/downloads.cgi

 

相关资料列表:http://www.java2000.net/f606

 

httpcomponents-client-4.0的项目包

 

分享到:
评论

相关推荐

    Commons HTTPClient4&#46;X组件应用示例

    ### Commons HTTPClient4.X 组件应用详解 #### 一、引言 随着互联网技术的发展,越来越多的应用场景需要直接通过HTTP协议访问Web服务器上的资源。传统的做法是使用浏览器或者基于JDK提供的`java.net`包中的类如`...

    HttpClient-4

    在Java应用中,HttpClient-4经常用于网页抓取、API调用、数据传输等场景。 Apache HttpClient 4.2.2是这个库的一个特定版本,包含了对HTTP/1.1协议的全面支持,以及对HTTP/2的初步支持。此版本修复了一些已知问题,...

    httpclient相关jar包

    本知识点将详细讲解与HTTPClient相关的三个关键组件:`commons-codec-1.3`、`commons-httpclient-3.0.1`和`commons-logging-1.1.1`。 1. **`commons-codec-1.3`**: 这个库是Apache Commons项目的一部分,提供了一...

    commons-httpclient相关jar包

    对于新的项目,推荐使用Apache HttpClient 4.x或更高版本,或者考虑使用Java 7及以后版本提供的内置`java.net.HttpURLConnection`,因为这些更新的解决方案通常有更好的性能和兼容性,并且与现代Java生态系统更好地...

    httpclient-log4g相关jar包

    HTTPClient是用于执行HTTP请求的客户端库,而Log4j则是一个流行的日志记录框架。这两个组件在许多企业级应用中都扮演着核心角色。 HTTPClient 4.5.2 是一个成熟的HTTP客户端API,由Apache软件基金会开发并维护。它...

    HTTPClient相关jar包

    HttpClient使用这个库来记录其内部操作,方便开发者调试和追踪问题。 4. `commons-codec-1.4-javadoc.jar`:这个文件包含了Commons Codec库的Java文档,开发者可以通过查阅它来了解库中各个类和方法的详细信息,...

    Java HttpClient 全部的jar包

    5. `httpclient-4.x.x.jar`: 这是HttpClient的核心库,包含了所有HTTP协议相关的类和方法,如创建HTTP请求、设置请求头、处理响应、管理连接池等。 6. `httpcore-4.x.x.jar`: Apache HttpCore是HttpClient的基础...

    httpclient-4.5.jar

    6. `commons-logging-1.x.jar`:这是一个轻量级日志框架,HttpClient通过它进行日志记录。 使用`httpclient-4.5.jar`时,需要注意线程安全性和连接管理。HttpClient支持多线程环境,但必须正确配置连接池和管理策略...

    httpclient-4.5所需jar包

    6. **commons-logging-x.x.jar**:这是一个日志抽象层,HTTPClient使用它来记录运行时信息。它允许开发者选择不同的日志实现,如log4j或java.util.logging。 7. **commons-codec-x.x.jar**:提供了常见的编码和解码...

    HTTPCLIENT

    在HTTPCLIENT中,日志记录是调试和问题追踪的关键工具。Apache Log4j是Java领域广泛应用的日志框架之一。它允许开发人员控制日志信息的级别,比如DEBUG、INFO、WARN、ERROR等,并可以将日志输出到不同的目的地,如...

    org.apache.commons.httpclient相关资源包

    在HttpClient中,它用于记录请求和响应的信息,帮助开发者调试和追踪问题。 Commons-Logging允许程序在不修改代码的情况下切换到其他日志框架,如Log4j或Java内置的日志系统。 了解这些库后,我们可以深入学习以下...

    HttpClient所需jar包(全) httpClient.4.13jar

    "json-lib"是一个与HttpClient相关的标签,表明这个压缩包可能还包括了处理JSON数据的库。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务之间的数据传输。json-lib是一个Java库,...

    HttpClient3.1.jar

    以下是对HttpClient3.1及其相关组件的详细解释: 1. **HttpClient**:HttpClient是Apache软件基金会的Jakarta项目的一部分,它提供了一套强大的API,使得开发者可以方便地执行HTTP请求,处理HTTP响应,并实现复杂的...

    HttpClient重新封装的HttpClient类

    7. **日志记录**:添加日志功能,记录请求和响应详情,便于调试和监控。 8. **泛型支持**:通过泛型方法,可以直接将响应内容转换为目标类型,简化代码。 例如,一个简单的封装可能如下所示: ```csharp public ...

    HttpClient

    2. **下载 Commons Logging**:HttpClient 需要依赖 Commons Logging 来记录日志信息。可以访问 [http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi]...

    httpClient入门

    HttpClient使用它来记录信息和错误。 4. `commons-codec-1.4.jar`:提供了各种编码算法,如Base64和Hex,HttpClient可能用它来编码URL、处理cookies或其他需要编码的数据。 在使用HttpClient时,开发者需要注意一些...

    httpclient jar

    HttpClient使用它来记录执行过程中的一些信息,方便调试和问题定位。 三、使用HttpClient进行POST和GET 1. GET请求:通过HttpClient,我们可以轻松创建GET请求。首先,创建一个`HttpGet`对象,设置请求的URL,然后...

    C#HTTPclient 实例应用

    ### 4. 设置HTTP头 你可以通过`HttpClient.DefaultRequestHeaders`来设置请求头,例如添加`Accept`、`Authorization`等头信息。 ```csharp httpClient.DefaultRequestHeaders.Accept.Add(new ...

Global site tag (gtag.js) - Google Analytics