java-如何在Apache HttpClient 4.3中设置默认HttpHost目标?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何在Apache HttpClient 4.3中设置默认HttpHost目标?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1355字,纯文字阅读大概需要2分钟。
内容图文
在Apache HttpClient 4.2中,可以创建DefaultHttpClient并设置主机,以便进行执行调用的主机不必在输入请求URI中提供主机信息,即:
HttpHost targetHost = new HttpHost(host, port, secure ? "https" : "http");
DefaultHttpClient defaultHttp = new DefaultHttpClient(connectionManager);
defaultHttp.getParams().setParameter(ClientPNames.DEFAULT_HOST, targetHost);
我确实承认这种策略显得很尴尬,我继承了这段代码:).我相信在4.2中还有更好的方法可以做到这一点.
我打算升级到4.3,并注意到不建议使用DefaultHttpClient和ClientPNames,而分别使用HttpClientBuilder和RequestConfig.但是我找不到用RequestConfig定义默认目标的方法.
执行的Documentation确实引用了该输入目标参数可以接受null的功能,因此我确定仍然有一种方法可以简化此操作,但是我正在努力找出这一点:
target – the target host for the request. Implementations may accept null if they can still determine a route, for example to a default target or by inspecting the request.
解决方法:
这应该可以解决问题
HttpRoutePlanner rp = new DefaultRoutePlanner(DefaultSchemePortResolver.INSTANCE) {
@Override
public HttpRoute determineRoute(
final HttpHost host,
final HttpRequest request,
final HttpContext context) throws HttpException {
HttpHost target = host != null ? host : new HttpHost("some.default.host");
return super.determineRoute(target, request, context);
}
};
CloseableHttpClient client = HttpClients.custom()
.setRoutePlanner(rp)
.build();
内容总结
以上是互联网集市为您收集整理的java-如何在Apache HttpClient 4.3中设置默认HttpHost目标?全部内容,希望文章能够帮你解决java-如何在Apache HttpClient 4.3中设置默认HttpHost目标?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。