[prev in list] [next in list] [prev in thread] [next in thread] 

List:       httpclient-commons-dev
Subject:    [jira] [Commented] (HTTPASYNC-164) ParseException: Invalid protocol version when using proxy setting
From:       "Nikola Mihajlovic (Jira)" <jira () apache ! org>
Date:       2021-06-30 14:00:14
Message-ID: JIRA.13343404.1606768734000.673708.1625061614538 () Atlassian ! JIRA
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/HTTPASYNC-164?page=com.atlassian.jira.plug \
in.system.issuetabpanels:comment-tabpanel&focusedCommentId=17372013#comment-17372013 \
] 

Nikola Mihajlovic commented on HTTPASYNC-164:
---------------------------------------------

Hi, n00b question

Can you please explain why we have to force HTTP1 if we use a proxy with HTTPS? Is \
this a fundamental limitation?

I noticed that we don't have to do this if we use proxy with HTTP. Thank you

> 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
> Priority: Major
> 
> 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: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic