Hi Team,
I have a perl script deployed on IIS server. When accessing this perl script we are getting *Connection closed* error (see below for stack trace) from Async HTTPClient 5.2.x future callback. When further debugged found that IIS is sending “Connection: Close” header after the response is sent due to which http client is throwing the said error even after reading / processing the response. This is resulting in response lost what IIS has sent. When I access the same resource using browser it is able to display the content. Is there any mechanism to handle these kind of responses? *Async HTTPClient Code* Future<Message<HttpResponse, String>> responseHandler = httpAsyncClient.execute(reqBuilder.build(), new BasicResponseConsumer<>(new AbstractClassicEntityConsumer<String>(){…}, null, clientContext, null); *Message<HttpResponse, String> response = responseHandler.get();* retCode = response.getHead().getCode(); *Stack Trace / Exception stack* org.apache.hc.core5.http.ConnectionClosedException: Connection is closed at org.apache.hc.core5.http.impl.nio.ClientHttp1StreamDuplexer.disconnected(ClientHttp1StreamDuplexer.java:212) at org.apache.hc.core5.http.impl.nio.AbstractHttp1StreamDuplexer.onDisconnect(AbstractHttp1StreamDuplexer.java:409) at org.apache.hc.core5.http.impl.nio.AbstractHttp1IOEventHandler.disconnected(AbstractHttp1IOEventHandler.java:95) at org.apache.hc.core5.http.impl.nio.ClientHttp1IOEventHandler.disconnected(ClientHttp1IOEventHandler.java:41) at org.apache.hc.client5.http.impl.async.LoggingIOSession$1.disconnected(LoggingIOSession.java:258) at org.apache.hc.core5.reactor.InternalDataChannel.disconnected(InternalDataChannel.java:204) at org.apache.hc.core5.reactor.SingleCoreIOReactor.processClosedSessions(SingleCoreIOReactor.java:231) at org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:133) at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:86) at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44) at java.lang.Thread.run(Thread.java:748) *HTTPClient log extract* 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.impl.async.HttpAsyncMainClientExec] ex-0000000003 send request GET /sample/ldapUD/16239/printenv.pl HTTP/1.1, entity len 0 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> GET /printenv.pl HTTP/1.1 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> Accept-Encoding: gzip, deflate 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> SMSDOMAIN: .abc.net 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> Cache-Control: max-age=0 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> Upgrade-Insecure-Requests: 1 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> *connection: keep-alive* 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> Accept-Language: en-US,en;q=0.9 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> Content-Length: 0 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 >> Host: iisserver 2023-02-21 15:37:59,600 DEBUG [org.apache.hc.client5.http.impl.async.HttpAsyncMainClientExec] ex-0000000003: produce request data …. …. …. 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.wire] c-0000000002[ACTIVE][r:r] << 7N. .s..c... 37 4e fe 1f e3 73 1b a9 63 10 00 00 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << HTTP/1.1 200 OK 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << Content-Type: text/plain; charset=iso-8859-1 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << Content-Encoding: gzip 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << Vary: Accept-Encoding 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << Server: Microsoft-IIS/10.0 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << set-cookie: APPSESSION=abcd;Domain=.test.com; Path=/default/xyz 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << X-Powered-By: ASP.NET 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << Date: Tue, 28 Feb 2023 03:41:23 GMT 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << *Connection: close* 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.headers] c-0000000002 << Content-Length: 2170 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.async.HttpAsyncMainClientExec] ex-0000000003: consume response HTTP/1.1 200 OK, entity len 2170 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.async.HttpAsyncMainClientExec] ex-0000000003: consume response data, len 2170 bytes 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.async.HttpAsyncMainClientExec] ex-0000000003: end of response data 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.async.InternalHttpAsyncClient] c-0000000002 Connection is not kept alive 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.async.HttpAsyncMainClientExec] ex-0000000003: execution failed: Connection is closed 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.async.InternalAbstractHttpAsyncClient] ex-0000000003 request failed: Connection is closed 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager] ep-0000000003 close IMMEDIATE 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.nio.DefaultManagedAsyncClientConnection] c-0000000002 Shutdown connection IMMEDIATE 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.async.InternalHttpAsyncClient] ep-0000000003 endpoint closed 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.async.InternalHttpAsyncClient] ep-0000000003 discarding endpoint 2023-02-21 15:37:59,647 DEBUG [org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager] ep-0000000003 releasing endpoint -- Thanks & Regards, Sreenivas