hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From CHARTIER Valentin <Valentin.CHART...@3ds.com>
Subject HttpClient 4.3 - ProxyClient message missing Host header
Date Tue, 01 Oct 2013 13:07:09 GMT
Hello all,
Experimenting http tunneling with org.apache.http.impl.client.ProxyClient with Apache 2.2
configured as a direct proxy.
Code is just the same as org.apache.http.examples.client.ProxyTunnelDemo.java :
        ProxyClient proxyClient = new ProxyClient();
        HttpHost target = new HttpHost("mytargetserver ", 443);
        HttpHost proxy = new HttpHost("localhost", 8080);
        UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("user",
        Socket socket = proxyClient.tunnel(proxy, target, credentials);

Connection attempts are failing with code 502.

The client log :
[DEBUG] headers - http-outgoing-0 >> CONNECT mytargetserver:443 HTTP/1.1
[DEBUG] headers - http-outgoing-0 >> Proxy-Connection: Keep-Alive
[DEBUG] headers - http-outgoing-0 << HTTP/1.1 400 Bad Request
[DEBUG] headers - http-outgoing-0 << Date: Tue, 01 Oct 2013 12:32:33 GMT
[DEBUG] headers - http-outgoing-0 << Server: Apache/2.2.25 (Win32)
[DEBUG] headers - http-outgoing-0 << Content-Length: 226
[DEBUG] headers - http-outgoing-0 << Connection: close
[DEBUG] headers - http-outgoing-0 << Content-Type: text/html; charset=iso-8859-1
[DEBUG] DefaultManagedHttpClientConnection - http-outgoing-0: Close connection

The Host header is missing.

Confirmed by the error log on Apache server side :
Client sent HTTP/1.1 request without host name (see RFC2616 section 14.23)

I could fix this issue by adding a RequestTargetHost processor in org.apache.http.impl.client.ProxyClient.java
at line 112 :
        this.httpProcessor = new ImmutableHttpProcessor(new RequestTargetHost(), new RequestClientConnControl(),
new RequestUserAgent());
instead of just
        this.httpProcessor = new ImmutableHttpProcessor(new RequestClientConnControl(), new

I didn't see any way of changing the behavior of ProxyClient from the outside so this really
looks like a bug to me.

Anybody experimenting the same ?
Is there a better way of establishing http tunneling with HttpClient 4.3 ?
Should the issue be reported ?


This email and any attachments are intended solely for the use of the individual or entity
to whom it is addressed and may be confidential and/or privileged.

If you are not one of the named recipients or have received this email in error,

(i) you should not read, disclose, or copy it,

(ii) please notify sender of your receipt by reply email and delete this email and all attachments,

(iii) Dassault Systemes does not accept or assume any liability or responsibility for any
use of or reliance on this email.

For other languages, go to http://www.3ds.com/terms/email-disclaimer

To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org

View raw message