Authority from request when HttpHost is null (#9990)

This commit is contained in:
Nils-Helge Garli Hegvik 2023-12-03 10:02:22 +01:00 committed by GitHub
parent 0994056365
commit bbfe950ad0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 3 deletions

View File

@ -19,9 +19,13 @@ public class RequestWithHost extends HttpRequestWrapper implements ClassicHttpRe
public RequestWithHost(HttpHost httpHost, ClassicHttpRequest httpRequest) {
super(httpRequest);
this.scheme = httpHost.getSchemeName();
this.authority = new URIAuthority(httpHost.getHostName(), httpHost.getPort());
if (httpHost != null) {
this.scheme = httpHost.getSchemeName();
this.authority = new URIAuthority(httpHost.getHostName(), httpHost.getPort());
} else {
this.scheme = httpRequest.getScheme();
this.authority = httpRequest.getAuthority();
}
}
@Override

View File

@ -20,6 +20,7 @@ import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.ClassicHttpResponse;
import org.apache.hc.core5.http.HttpHost;
import org.apache.hc.core5.http.HttpResponse;
import org.apache.hc.core5.http.io.HttpClientResponseHandler;
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
@ -90,6 +91,26 @@ public class ApacheHttpClientTest {
}
}
@Nested
class ApacheClientNullHttpHostRequestTest extends AbstractTest {
@Override
ClassicHttpRequest createRequest(String method, URI uri) {
// also testing with an absolute path below
return new BasicClassicHttpRequest(method, HttpHost.create(uri), fullPathFromUri(uri));
}
@Override
ClassicHttpResponse doExecuteRequest(ClassicHttpRequest request, URI uri) throws Exception {
return getClient(uri).execute(null, request);
}
@Override
void executeRequestWithCallback(ClassicHttpRequest request, URI uri, HttpClientResult result)
throws Exception {
getClient(uri).execute(null, request, new ResponseHandler(result));
}
}
@Nested
class ApacheClientHostAbsoluteUriRequestTest extends AbstractTest {
@Override