[
https://issues.apache.org/jira/browse/HTTPCLIENT-1496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13970728#comment-13970728
]
Oleg Kalnichevski commented on HTTPCLIENT-1496:
-----------------------------------------------
Matt,
The host, port and scheme of the current request can be obtained from the
execution request as the HttpClientContext#HTTP_TARGET_HOST attribute. Should
not that be sufficient?
{code:java}
CloseableHttpClient hc = HttpClients.custom()
.addInterceptorFirst(new HttpRequestInterceptor() {
@Override
public void process(
final HttpRequest request,
final HttpContext context) throws HttpException,
IOException {
HttpHost target = (HttpHost) context.getAttribute(
HttpClientContext.HTTP_TARGET_HOST);
System.out.println(target);
}
})
.build();
CloseableHttpResponse response = hc.execute(new HttpGet("http://google.com/"));
try {
} finally {
response.close();
}
{code}
> HttpRequestInterceptors do not have easy access to the scheme, host or port
> of the request.
> -------------------------------------------------------------------------------------------
>
> Key: HTTPCLIENT-1496
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1496
> Project: HttpComponents HttpClient
> Issue Type: Improvement
> Components: HttpClient
> Affects Versions: 4.3.3
> Reporter: Matt Inger
>
> When writing an HttpRequestInterceptor, there are some cases where it is
> necessary to have access to the absolute URL of the request being
> intercepted. This is required in order to get data like the scheme
> (http/https) and the host name in some situations.
> However, due to the nature of how the requests are wrapped in HttpClient 4.3,
> all instances of HttpUriRequest are wrapped with an HttpRequestWrapper, and
> converted into a relative request.
> At that point, you cannot retrieve the scheme, hostname or port of the
> original request without casting to an HttpRequestWrapper, and unwrapping the
> original request from it.
> It would be helpful if there was a way to easily retrieve this information
> from the HttpRequestWrapper. Even more helpful would be some mechanism (a
> new method on HttpRequest perhaps) to retrieve all these pieces of data
> without having an instanceof and a cast.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]