重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了java中httpclient如何设置超时时间和代理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、成都网站建设、覃塘网络推广、微信小程序开发、覃塘网络营销、覃塘企业策划、覃塘品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供覃塘建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.comJava是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。
设置超时时间
设置HttpClient的超时时间,非常有必要性,因为httpclient 默认超时时间很长,自己可以测试一下是多久,设置超时时间否则会影响自己系统的业务逻辑,例如阻塞系统,影响系统的吞吐量,占用线程数。
httpclient 4.4版本之后将这些设置封装到 RequestConfig 对象里,其中 setConnectTimeout 是设置连接到目标 URL 的等待时长,超过这个时间还没连上就抛出连接超时;
setConnectionRequestTimeout 是从connect Manager(连接池)获取连接的等待时长,这个版本是共享连接池的;
setSocketTimeout 是连接到目标URL 之后等待返回响应的时长,即超过这个时间就放弃本次调用并抛出
SocketTimeoutException:Read Time Out public static RequestConfig getRequestConfig(){ RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(10000) .setSocketTimeout(10000) .setConnectionRequestTimeout(6000) .build(); return requestConfig; }
设置代理
有时候我们线上访问外部第三方的接口的时候,不想暴露真实机器的IP,或者我们的机器不能访问外网的时候,我们可以通过代理服务器来访问,代理服务器充当内网与外网链接的中间人。
httpclient 4.4后设置代理的 IP、端口被封装到 RequestConfig 对象里,通过 HttpHost 对象封装代理的 IP、端口和协议。
这里需要注意的一点是,如果你的目标 URL 是 HTTP 协议的,那么你的代理也应该是 HTTP 协议的,如下 HttpHost 的构造方法可以指定代理服务的协议,不传默认为 HTTP。
public static RequestConfig getRequestConfig(){ HttpHost proxy = new HttpHost("代理ip",8080,"HTTP");//代理 RequestConfig requestConfig = RequestConfig.custom() .setProxy(proxy) .setConnectTimeout(10000) .setSocketTimeout(10000) .setConnectionRequestTimeout(6000) .build(); return requestConfig; }
然后通过 HttpPost 或 HttpGet 的setConfig()方法使其应用到该 config。
HttpPost httpPost = new HttpPost(url); if(null != requestConfig){ httpPost.setConfig(requestConfig); }
感谢你能够认真阅读完这篇文章,希望小编分享的“java中httpclient如何设置超时时间和代理”这篇文章对大家有帮助,同时也希望大家多多支持创新互联建站,关注创新互联网站建设公司行业资讯频道,更多相关知识等着你来学习!
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。