`
huanyq2008
  • 浏览: 166528 次
  • 性别: 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的项目包

 

分享到:
评论

相关推荐

    android 学习笔记6-HttpClient 多线程下载 断点续传 进度条 源码关联

    4、多线程下载:使用RandomAccessFile输出流写 5、多线程下载-断点续传:使用临时文件记录当前下载的数据,下次读取文件开始下载 6、下载显示进度条-ProgressBar 7、在gitbub上面下载已经有支持断点续传功能的代码...

    httpclient实例

    //每页多少条记录 int pageSzie = 5; //当前第几页 int pageNum = 1; MyClient mc = new MyClient(); String result = null; //调用不带查询项的方法 result = new String(mc.client(url,params,...

    httpclient4.5笔记,常用知识点,从零开始也能看懂(持续更新)

    最近一直在使用httpclient4.5进行网页爬取,平时有记笔记习惯,里面记录了很多自己的理解,从初级到高级。大部分都是白话描述好理解,包含实例代码都是亲测可行。 如有什么地方没有记录到的,欢迎评论我会持续更新..

    HttpClientMock:用于模拟Apache HttpClient的库

    它与HttpClient 4.X和5.X一起使用。 安装 HttpClientMock在Maven中央存储库中可用。 要模拟HttpClient 4.x,请使用HttpClientMock1.X。 要模拟HttpClient 5.x,请使用HttpClientMock2.X。 用法 记录 使用...

    LogBundle:Symfony应用程序的规范化日志记录和跟踪功能

    为所有ETSGlobal Symfony应用程序提供标准化的日志记录和跟踪功能。 概述 主要特点: 自动记录器注入。 提供TokenCollection实用程序,以使下游应用程序能够从一个应用程序到TokenCollection应用程序进行请求跟踪...

    PrettyWireLogViewer:用于 Apache HttpClient 连线记录的漂亮查看器

    PrettyWireLogViewer 用于 Apache 连线记录的漂亮查看器入门如果您想在本地环境中使用,请访问index.html 。要求支持 replaceState 的浏览器对于开发者设置开发环境的方法: $ npm install$ ./node_modules/.bin/...

    .NET Core 2.1中HttpClientFactory的最佳实践记录

    它有助于解决开发人员在使用HttpClient实例从其应用程序发出外部Web请求时可能遇到的一些常见问题。 介绍 在.NETCore平台的2.1新增了HttpClientFactory,虽然HttpClient这个类实现了disposable,但使用它的时候用...

    FluentlyHttpClient:.NET Standard的Http客户端,具有直观,易用且高度可扩展的fluent API

    Fluent API for Client构建器提供多种HttpClient支持 可自定义的格式程序(开箱即用的JSON,XML) 网址插值和查询参数,例如person/{id} / person?id=1 GraphQL支持 文件上传支持 安装 适用于 注意:1.x取决于...

    plugins工具

    一个工具类, plugins 工具类相关工具类(utils)、包(package)、插件(plugins)介绍、使用 1 session(http)-&gt;datebase, apc, memcache 三种方式存储session数据 question:关于两个IE页面之间SESSION数据不能共享 ...

    java后台实现支付宝支付接口和支付宝订单查询接口(前端为APP)

    主要介绍了java后台实现支付宝支付接口和支付宝订单查询接口(前端为APP),非常具有实用价值,需要的朋友可以参考下

    javaweb做接口中转服务

    内网调外网接口服务,通用中转程序,并使用log4记录请求与返回值,使用springMvc框架一个简单的demo

    WebsiteAutoTest-V1.0-源码

    自动发送相关请求到网站,把请求的结果和执行时间等信息,作为报表展现出来。 通过报表就可以发现,服务器内部错误(500),页面未找到错误(404),哪些请求相对比较耗时。 重复的事情自动化,减轻工作“压力...

    C# WinForm实现同时使用formData和文件作为参数调用URL(源代码)

    同时,我们还提供了详细的错误处理和日志记录功能,以便在出现问题时能够迅速定位并解决。 对于开发者而言,这款程序的使用也非常便捷。我们提供了清晰的接口和文档说明,使得开发者能够轻松集成到自己的项目中。...

    go-vcr:受VCR启发的Go库,用于记录测试期间重播HTTP调用

    HTTPClient = httpClientdefer server . Close ()vine , err := client . getVine ( vineID )// ... 一旦运行此测试,go-vcr会将HTTP请求记录到Fixtures / vine.json。 再次运行它时,go-vcr将重播响应。 就像一样...

    CorrelationId:一个ASP.NET Core中间件组件,该组件同步相关ID以进行跨API请求日志记录

    相关ID 相关ID用于分布式应用程序中,以跨多个服务跟踪请求。 该库和软件包提供了轻量级的关联ID方法。 启用后,将检查请求标头中来自使用者的关联ID。 如果找到,则此关联ID会附加到“关联上下文”,该上下文可用于...

    Java NIO+多线程实现聊天室

    log4j+slf4j日志 实现的功能 登录注销 单聊 群聊 客户端提交任务,下载图片并显示 上线下线公告 在线用户记录 批量下载豆瓣电影的图片,并打成压缩包传输给客户端 客户端使用方式: 登录:默认用户名是user1-user5...

    HttpClientStruts2Example

    通过HttpClient将图片上传到服务端,上传成功后,服务端返回结果(字符串形式,非页面)。注意:客户端是整个工程都有,服务端只有一个Action类和struts配置文件,具体struts2框架需要自己搭建。

    教务管理系统-微信小程序(供学习和参考)

    考勤记录 图书馆 使用Java的HttpClient网络编程工具来模拟登录学校PC端正方教务管理系统,通过发送Get或Post请求,抓取返回的HTTP数据包并分析,获取目标数据,将获取的数据处理后在微信小程序上面呈现给用户,并再...

    java开源包4

    该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存...

    在ruby中记录传出的HTTP请求-Ruby开发

    httplog记录从应用程序发出的传出HTTP请求。 帮助调试讨厌的API错误响应,或者只是大致了解...此gem与以下ruby模块和库一起使用:Net :: HTTP Ethon Excon Opencon Patron HTTPClient HTTParty HTTP这些库至少是一部分

Global site tag (gtag.js) - Google Analytics