Carlos created HTTPASYNC-164:
--------------------------------

             Summary: ParseException: Invalid protocol version when using proxy 
settings
                 Key: HTTPASYNC-164
                 URL: https://issues.apache.org/jira/browse/HTTPASYNC-164
             Project: HttpComponents HttpAsyncClient
          Issue Type: Bug
            Reporter: Carlos


Hi,

We have upgraded our Apache HTTP Client library from version 4.1.4 to 5.0.3. We 
are using the async API. Overall, it's working very good. The reason for the 
upgrade is the need of using the new retry feature. However, we have an 
endpoint that requires accessing through a proxy. The problem with this one is 
that it's returning the following error:
{code:java}
org.apache.hc.core5.http.ParseException: Invalid protocol version; error at 
offset 0: 
<[0x2e][0x2f][0x30][0x31][0x32][0x33][0x34][0x35][0x36][0x37][0x38][0x39][0x3a][0x3b][0x3c][0x3d][0x3e]>
 
        at 
org.apache.hc.core5.http.message.BasicLineParser.parseProtocolVersion(BasicLineParser.java:109)
 
        at 
org.apache.hc.core5.http.message.BasicLineParser.parseStatusLine(BasicLineParser.java:180)
 
        at 
org.apache.hc.core5.http.impl.nio.DefaultHttpResponseParser.createMessage(DefaultHttpResponseParser.java:83)
 
        at 
org.apache.hc.core5.http.impl.nio.DefaultHttpResponseParser.createMessage(DefaultHttpResponseParser.java:44)
 
        at 
org.apache.hc.core5.http.impl.nio.AbstractMessageParser.parseHeadLine(AbstractMessageParser.java:115)
 
        at 
org.apache.hc.core5.http.impl.nio.AbstractMessageParser.parse(AbstractMessageParser.java:167)
 
        at 
org.apache.hc.core5.http.impl.nio.AbstractMessageParser.parse(AbstractMessageParser.java:51)
 
        at 
org.apache.hc.core5.http.impl.nio.AbstractHttp1StreamDuplexer.parseMessageHead(AbstractHttp1StreamDuplexer.java:238)
 
        at 
org.apache.hc.core5.http.impl.nio.AbstractHttp1StreamDuplexer.onInput(AbstractHttp1StreamDuplexer.java:267)
 
        at 
org.apache.hc.core5.http.impl.nio.AbstractHttp1IOEventHandler.inputReady(AbstractHttp1IOEventHandler.java:64)
 
        at 
org.apache.hc.core5.http.impl.nio.ClientHttp1IOEventHandler.inputReady(ClientHttp1IOEventHandler.java:39)
 
        at 
org.apache.hc.core5.reactor.ssl.SSLIOSession.decryptData(SSLIOSession.java:536) 
        at 
org.apache.hc.core5.reactor.ssl.SSLIOSession.access$400(SSLIOSession.java:71) 
        at 
org.apache.hc.core5.reactor.ssl.SSLIOSession$1.inputReady(SSLIOSession.java:176)
 
        at 
org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:124)
 
        at 
org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
 
        at 
org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:179)
 
        at 
org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:128)
 
        at 
org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:85)
 
        at 
org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44) 
        at java.base/java.lang.Thread.run(Thread.java:834)

{code}
Same invocation with the previous library version was perfectly. We've tried a 
few options, but all of them result in the same exception being thrown:
{code:java}
        // Option 1
        return 
HttpAsyncClientBuilder.create().setProxy(HttpHost.create("http://127.0.0.1:8080";)).build();
        
        // Option 2
        final ProxySelector proxySelector = ProxySelector.of(new 
InetSocketAddress("127.0.0.1", 8080));
        final HttpRoutePlanner routePlanner = new 
SystemDefaultRoutePlanner(proxySelector);
        
        return 
HttpAsyncClientBuilder.create().setRoutePlanner(routePlanner).build();

        // Option 3
        return 
HttpAsyncClients.customHttp2().setRoutePlanner(routePlanner).build();

        // Option 4
        return 
HttpAsyncClients.custom().setProxy(HttpHost.create("http://127.0.0.1:8080";)).build();
        
        // Option 5
        return 
HttpAsyncClientBuilder.create().setProxy(HttpHost.create("http://127.0.0.1:8080";)).build();
{code}
 
Is there a way to solve this issue? Any way to restore the previous version 
configuration?

Thank you!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to