将HTTP标头“ User-Agent”添加到HTTP CONNECT请求

最大限度

先决条件

  • Apache Tomcat 7
  • 春天3.2.11.RELEASE
  • 阿帕奇骆驼2.14.1
  • 骆驼HTTP4端点(camel-http4)

问题

我尝试通过http4组件调用https加密的站点。在我的服务器和Internet(目标服务器)之间的代理检查标头“ User-Agent”,如果请求为空,则拒绝该请求。

connect-Request不包含http头“ User-Agent”。

在org.apache.http.impl.execchain.MainClientExec中,private boolean createTunnelToTarget(AuthState proxyAuthState, HttpClientConnection managedConn, HttpRoute route, HttpRequest request, HttpClientContext context) throws HttpException, IOException以下方法被调用:

    BasicHttpRequest connect = new BasicHttpRequest("CONNECT", authority, request.getProtocolVersion());
    this.requestExecutor.preProcess(connect, this.proxyHttpProcessor, context);

this.requestExecutor.preProcess 将标头“ Host”和“ Proxy-Connection”添加到HTTP CONNECT请求中,但不添加“ User-Agent”。

如何将标头“ User-Agent”添加到HTTP CONNECT请求中?

问候,

最大限度

最大限度

该问题已在httpclient 4.4.1中解决。

在类org.apache.http.impl.client.HttpClientBuilder中,使用针对用户代理的HttpRequestInterceptor初始化httpprocessor:

    ClientExecChain execChain = createMainExec(
            requestExecCopy,
            connManagerCopy,
            reuseStrategyCopy,
            keepAliveStrategyCopy,
            new ImmutableHttpProcessor(new RequestTargetHost(), new RequestUserAgent(userAgentCopy)),
            targetAuthStrategyCopy,
            proxyAuthStrategyCopy,
            userTokenHandlerCopy);

解决方案是将httpclient版本从4.3.3更新到4.4.1。在Maven中,我必须定义依赖项,以便不选择骆驼使用的版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

狂饮HTTP-将Authorization标头直接添加到请求中

来自分类Dev

将未更改的小写标头添加到golang http请求

来自分类Dev

使用Ajax将CORS标头添加到http请求

来自分类Dev

Akka-http:如何从请求标头中获取User-Agent标头?

来自分类Dev

HTTP请求标头

来自分类Dev

将自定义http标头添加到所有jQuery AJAX请求中

来自分类Dev

将自定义http标头添加到chai请求

来自分类Dev

如何以编程方式将相关标头添加到Application Insights Angular http请求

来自分类Dev

无法将http请求标头写入perl中的文件

来自分类Dev

如何将HTTP标头添加到Jenkins

来自分类Dev

在ClientWebSocket中设置“ User-Agent” HTTP标头

来自分类Dev

预览请求的标准HTTP请求标头

来自分类Dev

如何将键/值参数附加到HTTP GET请求的标头?

来自分类Dev

匹配缺少某些标头的HTTP请求

来自分类Dev

创建HTTP GET标头请求

来自分类Dev

使用AngularJS发送HTTP标头请求

来自分类Dev

HTTP / 2请求标头压缩

来自分类Dev

从JavaScript设置常规HTTP请求标头

来自分类Dev

Akka-http非法请求标头

来自分类Dev

HTTP请求标头和缓存

来自分类Dev

使用标头“ origin”验证HTTP请求

来自分类Dev

无法从请求获取HTTP标头

来自分类Dev

使用AngularJS发送HTTP标头请求

来自分类Dev

创建HTTP GET标头请求

来自分类Dev

AngularJs HTTP请求标头未更改

来自分类Dev

Android中的HTTP请求标头问题

来自分类Dev

HTTP / 2请求标头压缩

来自分类Dev

在 Http 请求中设置标头

来自分类Dev

是否可以将请求标头添加到CORS预检请求中?