[ https://issues.apache.org/jira/browse/HTTPCLIENT-2338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17881314#comment-17881314 ]
ASF subversion and git services commented on HTTPCLIENT-2338: ------------------------------------------------------------- Commit 3b5c815f5c524ca76e51da365318a825b864d3db in httpcomponents-client's branch refs/heads/master from Oleg Kalnichevski [ https://gitbox.apache.org/repos/asf?p=httpcomponents-client.git;h=3b5c815f5 ] HTTPCLIENT-2338: put compress exec interceptor after retry exec interceptor > Accept-Encoding lost on request retrying > ---------------------------------------- > > Key: HTTPCLIENT-2338 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2338 > Project: HttpComponents HttpClient > Issue Type: Bug > Components: HttpClient (classic) > Affects Versions: 5.3.1 > Reporter: MichaĆ Krysztofik > Priority: Minor > Fix For: 5.3.2, 5.4-beta2 > > > Make an HTTP request that is retried (e.g. response status 429). The HTTP > headers of the retried request does not include an `Accept-Encoding` header. > {code} > import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; > import org.apache.hc.client5.http.impl.classic.HttpClients; > import org.apache.hc.client5.http.protocol.HttpClientContext; > import org.apache.hc.core5.http.ClassicHttpRequest; > import org.apache.hc.core5.http.impl.io.DefaultClassicHttpRequestFactory; > import org.junit.jupiter.api.Test; > import org.mockserver.integration.ClientAndServer; > import org.mockserver.model.HttpRequest; > import org.mockserver.socket.PortFactory; > import java.io.IOException; > import java.io.UncheckedIOException; > import static org.assertj.core.api.Assertions.assertThat; > import static org.mockserver.model.HttpRequest.request; > import static org.mockserver.model.HttpResponse.response; > public class ApacheTest { > @Test > void repeatedRequestHasNoAcceptEncodingHeader() { > int serverPort = PortFactory.findFreePort(); > String serverUrl = "http://localhost:" + serverPort; > ClientAndServer server = ClientAndServer.startClientAndServer(serverPort); > server.when(request()).respond(response().withStatusCode(429)); > try (CloseableHttpClient httpClient = HttpClients.createDefault()) { > ClassicHttpRequest request = > DefaultClassicHttpRequestFactory.INSTANCE.newHttpRequest("GET", serverUrl); > httpClient.execute(request, HttpClientContext.create(), r -> r); > } catch (IOException e) { > throw new UncheckedIOException(e.getMessage(), e); > } > HttpRequest[] sentRequests = server.retrieveRecordedRequests(null); > assertThat(sentRequests).satisfiesExactly( > first -> assertThat(first.getHeaderList()).extracting(h -> > h.getName().getValue()) > .containsExactlyInAnyOrder("content-length", "Connection", > "User-Agent", "Host", "Accept-Encoding"), > second -> assertThat(second.getHeaderList()).extracting(h -> > h.getName().getValue()) > .containsExactlyInAnyOrder("content-length", "Connection", > "User-Agent", "Host") > ); > } > }{code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org