- 浏览: 622777 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (819)
- java开发 (110)
- 数据库 (56)
- javascript (30)
- 生活、哲理 (17)
- jquery (36)
- 杂谈 (15)
- linux (62)
- spring (52)
- kafka (11)
- http协议 (22)
- 架构 (18)
- ZooKeeper (18)
- eclipse (13)
- ngork (2)
- dubbo框架 (6)
- Mybatis (9)
- 缓存 (28)
- maven (20)
- MongoDB (3)
- 设计模式 (3)
- shiro (10)
- taokeeper (1)
- 锁和多线程 (3)
- Tomcat7集群 (12)
- Nginx (34)
- nodejs (1)
- MDC (1)
- Netty (7)
- solr (15)
- JSON (8)
- rabbitmq (32)
- disconf (7)
- PowerDesigne (0)
- Spring Boot (31)
- 日志系统 (6)
- erlang (2)
- Swagger (3)
- 测试工具 (3)
- docker (17)
- ELK (2)
- TCC分布式事务 (2)
- marathon (12)
- phpMyAdmin (12)
- git (3)
- Atomix (1)
- Calico (1)
- Lua (7)
- 泛解析 (2)
- OpenResty (2)
- spring mvc (19)
- 前端 (3)
- spring cloud (15)
- Netflix (1)
- zipkin (3)
- JVM 内存模型 (5)
- websocket (1)
- Eureka (4)
- apollo (2)
- idea (2)
- go (1)
- 业务 (0)
- idea开发工具 (1)
最新评论
-
sichunli_030:
对于频繁调用的话,建议采用连接池机制
配置TOMCAT及httpClient的keepalive以高效利用长连接 -
11想念99不见:
你好,我看不太懂。假如我的项目中会频繁调用rest接口,是要用 ...
配置TOMCAT及httpClient的keepalive以高效利用长连接
这个类位于 org.apache.http.client.config包下,主要用于获取和配置一些外部的网络环境,它下面有一个嵌套类 RequestConfig.Builder,顾名思义,它肯定是用来配置网络环境的(姑且叫它“配置器”吧)。其使用方法是:先用 RequestConfig类的静态方法custom()获取equestConfig.Builder“配置器”,然后再用其下各种方法配置网络环境;或者已经有配置好的RequestConfig对象(非RequestConfig.Builder)而将此对象拷贝(RequestConfig类的 copy()方法)过来返回“配置器“而重新进行其它的网络环境的配置。最终,再调用配置器的buillder()方法返回RequestConfig对象。
配置好请求信息之后,那么接下的问题就是将配置好请求信息附加到http请求中
http://www.xjweb88.com/thread-42-1-1.html
RequestConfig defaultRequestConfig = RequestConfig.custom() .setCookieSpec(CookieSpecs.BEST_MATCH) .setExpectContinueEnabled(true) .setStaleConnectionCheckEnabled(true) .setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)) .build(); RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig) .setSocketTimeout(5000) .setConnectTimeout(5000) .setConnectionRequestTimeout(5000) .setProxy(new HttpHost("myotherproxy", 8080)) .build();
配置好请求信息之后,那么接下的问题就是将配置好请求信息附加到http请求中
HttpGet httpget = new HttpGet("http://www.xjweb88.com"); httpget.setConfig(requestConfig);
RequestConfig.Buillder配置中的方法 setAuthenticationEnabled(boolean authenticationEnabled) setCircularRedirectsAllowed(boolean circularRedirectsAllowed) setConnectionRequestTimeout(int connectionRequestTimeout) setConnectTimeout(int connectTimeout) setCookieSpec(String cookieSpec) setExpectContinueEnabled(boolean expectContinueEnabled) setLocalAddress(InetAddress localAddress) setMaxRedirects(int maxRedirects) setProxy(HttpHost proxy) setProxyPreferredAuthSchemes(Collection proxyPreferredAuthSchemes) setRedirectsEnabled(boolean redirectsEnabled) setRelativeRedirectsAllowed(boolean relativeRedirectsAllowed) setSocketTimeout(int socketTimeout) setStaleConnectionCheckEnabled(boolean staleConnectionCheckEnabled) setTargetPreferredAuthSchemes(Collection targetPreferredAuthSchemes) build() RequestConfig类中的方法 getConnectionRequestTimeout() getConnectTimeout() getCookieSpec() getLocalAddress() getMaxRedirects() getProxy() getProxyPreferredAuthSchemes() getSocketTimeout() getTargetPreferredAuthSchemes() isAuthenticationEnabled() isCircularRedirectsAllowed() isExpectContinueEnabled() isRedirectsEnabled() isRelativeRedirectsAllowed() isStaleConnectionCheckEnabled() toString()
http://www.xjweb88.com/thread-42-1-1.html
发表评论
-
stringentity、urlEncodeFormEntity区别
2018-04-10 20:43 745UrlEncodedFormEntity()的形式比较单一,只 ... -
HttpClient Post 二进制/字节流/byte[]
2018-03-11 23:29 1680http://blog.csdn.net/Sidyhe/art ... -
Socket端口状态说明 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT
2017-12-15 19:30 836http://blog.csdn.net/klzyf100/a ... -
java 实现https请求的基本原理与介绍
2017-09-17 23:13 665实现https请求的基本原理与介绍 http://blog.c ... -
wireshark过滤语法总结
2017-08-29 16:14 479wireshark过滤语法总结 http://blog.csd ... -
OkHttp3
2017-08-09 10:22 446http://www.jianshu.com/p/187328 ... -
HttpClient内部三个超时时间的区别
2017-07-22 15:21 16881.HttpClient内部三个超时 ... -
HttpClient 发送 HTTP、HTTPS 请求的简单封装
2017-05-27 11:27 625http://blog.csdn.net/happylee66 ... -
httpclient长链接与短链接
2017-05-27 10:12 1441http://blog.csdn.net/yaoqinggg/ ... -
正确使用ngrok穿透内网
2017-05-27 09:55 622http://blog.csdn.net/jiangbo_ph ... -
伪造Http请求IP地址
2017-05-25 20:18 2065注意:伪造Http请求IP地址一般为非推荐使用手段 一般使用 ... -
HTTP长连接和短连接以及推送技术原理
2017-03-05 22:39 1139http://blog.csdn.net/freewaywal ... -
HttpClient容易忽视的细节——连接关闭
2017-02-17 15:04 485HttpClient client = new HttpCli ... -
【HTTP】Fiddler(二) - 使用Fiddler做抓包分析
2017-02-17 08:24 583一.对PC(笔记本)参数进行配置 1. 配置fiddler允许 ... -
fiddler2抓包工具使用图文教程
2016-09-29 16:51 442参考:http://blog.163.com/hlz_2599 ... -
chrome安装插件,安装Postman
2016-09-29 08:56 6571、下载postman插件,可以自己到网上下载,也可以点击ht ... -
tcp三次握手建立连接,四次握手关闭连接
2016-09-12 09:05 50在发送http请求之前,客户端和服务器必须建立tcp三次握手连 ... -
配置TOMCAT及httpClient的keepalive以高效利用长连接
2016-08-27 17:38 5135总所周知http1.1(http1.0不是标准,依服务器而定) ... -
http的安全方法和幂等性
2016-07-26 14:58 722最近在研究http,看到htt ... -
TCP的三次握手(建立连接)和四次挥手(关闭连接)
2016-05-15 13:01 472http://www.cnblogs.com/Jessy/p/ ...
相关推荐
《HttpClient工具类包详解》 在Java开发中, HttpClient是一个非常重要的工具库,它提供了强大的HTTP客户端编程接口,使得开发者可以方便地进行HTTP通信。本文将深入探讨HttpClient工具类包,包括其核心组件、功能...
如果需要更复杂的处理,例如解析JSON或XML,可以使用诸如Gson或Jackson这样的库来处理响应实体。 总结一下,HttpClient工具类为我们提供了一种简洁的方式去发送HTTP请求。通过它可以方便地执行GET、POST请求,并对...
在Java项目中使用HttpClient,首先需要将必要的jar包添加到项目的类路径中。 在你提供的信息中,有两个关键的jar包:`httpclient-4.3.1.jar`和`httpcore-4.3.jar`。这两个jar包构成了HttpClient的核心组件: 1. `...
它使用`RequestConfig.custom()`创建一个自定义配置对象,并根据预先定义的常量设置超时时间,然后将其应用到传入的`HttpRequestBase`对象上。 4. **请求参数处理**: - 对于POST请求,可以使用`...
- **处理响应**:封装解析响应内容的方法,如`parseResponse(HttpResponse response)`,可以将内容转换为字符串、JSON对象等。 - **异常处理**:添加统一的异常处理逻辑,确保在出现错误时能提供有用的反馈。 4. ...
8. **请求和响应的细粒度控制**:HttpClient 允许开发者精确控制每个请求的头信息、参数、超时设置等,同时可以完全解析响应内容,包括状态码、头信息和实体内容。 9. **HTTP 缓存**:HttpClient 支持 HTTP 缓存...
HttpClient还支持其他高级功能,比如使用`CookieStore`管理Cookie,`RedirectStrategy`处理重定向,`PoolingHttpClientConnectionManager`管理连接池,以及通过`RequestConfig`自定义请求配置等。 在处理响应时,...
.setDefaultRequestConfig(RequestConfig.custom().build()) .build(); ``` 在这里,可以添加自定义的字符集处理策略。 4. **工具类的封装**:根据描述,有一个工具类能够有效解决乱码问题。通常,这样的工具类...
6. **请求配置**:深入`RequestConfig`类,了解如何设置请求的超时、重试次数、连接和读取时间等。 7. **异步编程**:如果源码包含对异步操作的支持,可以了解`FutureCallback`和`AsyncHttpClient`,学习如何实现非...
5. 处理响应:解析响应状态码、响应头和响应体,进行相应的业务逻辑处理。 6. 关闭资源:完成操作后,记得关闭HttpClient实例,释放连接资源。 总结,`org.apache.http.legacy.jar`作为Apache HttpClient库的一部分...
RequestConfig config = RequestConfig.custom().setProxy(proxy).build(); httpGet.setConfig(config); ``` 以上就是使用Java和Apache HttpClient库实现爬虫下载表情包或GIF图片的基本步骤。需要注意的是,进行网络...
在压缩包中的"ziyou_Spiter"文件很可能是该项目的源代码,包含了具体实现这些步骤的Java类。如果你需要进一步了解代码实现细节,可以详细研究这个文件。总的来说,Java实现抓取自游网数据的过程涉及到网络请求、HTML...
发送请求后,我们需要解析服务器返回的响应。HttpClient的`CloseableHttpResponse`对象提供了访问响应状态码、头信息和响应体的方法。例如: ```java StatusLine statusLine = response.getStatusLine(); System...
本知识点将详细介绍HTTPClient 4.3在爬虫开发中的应用及其主要组件。 一、HTTPClient 4.3的安装与...在实际开发中,还需要结合其他库,如Jsoup进行HTML解析,或者使用Guava进行缓存管理,以提高爬虫的效率和稳定性。
RequestConfig config = RequestConfig.custom() .setConnectTimeout(5000) .setSocketTimeout(5000) .build(); httpGet.setConfig(config); ``` 同时,HttpClient还支持连接池管理,通过`...
`EntityUtils`类提供了读取和解析实体内容的方法。 4. **连接管理**:HttpClient通过`HttpClientConnectionManager`管理HTTP连接,例如设置最大连接数、超时时间等。`PoolingHttpClientConnectionManager`是常用的...
`EntityUtils`类提供了方便的方法来读取和解析实体内容。 3. 处理器:`ResponseHandler`接口允许自定义处理响应的方式,例如,你可以实现这个接口来将响应转换为特定类型。 五、连接管理 HttpClient 4.1.4引入了...
- `EntityUtils`类提供方便的方法来读取和解析响应实体,如`EntityUtils.toString()`。 - 自定义`HttpEntity`实现,可以处理自定义格式的数据。 8. **异步操作** - HttpClient 4.5及以上版本引入了异步API,通过...
RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(10000).build(); CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(new ...
总之,HttpClient是Java开发中处理HTTP请求的强大工具,它提供了一套完整的API来构建、发送和解析HTTP请求。通过理解和熟练使用HttpClient,开发者能够高效地与Web服务进行交互,处理各种复杂的网络请求场景。在项目...