Package io.servicetalk.http.utils
Class RedirectingHttpRequesterFilter
- java.lang.Object
-
- io.servicetalk.http.utils.RedirectingHttpRequesterFilter
-
- All Implemented Interfaces:
HttpExecutionStrategyInfluencer,StreamingHttpClientFilterFactory,StreamingHttpConnectionFilterFactory
public final class RedirectingHttpRequesterFilter extends java.lang.Object implements StreamingHttpClientFilterFactory, StreamingHttpConnectionFilterFactory, HttpExecutionStrategyInfluencer
A HTTP request filter that performs automatic redirects ifStreamingHttpRequester.request(HttpExecutionStrategy, StreamingHttpRequest)method receives 3XX status code in theresponse.Notes:
- This implementation will not parse a payload for 300 (Multiple Choices) response code, if a preferred
choice's URI reference is not returned in the
Locationheader. - This implementation creates a redirect request internally with a request target in the
origin-form and assumes that
request targetandhost headerare sufficient for a provided request-to-group-key function. - Depending on its parameters and context:
HttpClientorHttpConnection, this filter may be limited to automatically following relative redirects only.
-
-
Constructor Summary
Constructors Constructor Description RedirectingHttpRequesterFilter()Create a new instance, only performing relative redirects.RedirectingHttpRequesterFilter(boolean onlyRelativeClient)Create a new instance, performing relative redirects only forHttpConnection.RedirectingHttpRequesterFilter(boolean onlyRelativeClient, boolean onlyRelativeConnection)Create a new instance.RedirectingHttpRequesterFilter(boolean onlyRelativeClient, boolean onlyRelativeConnection, int maxRedirects)Create a new instance.RedirectingHttpRequesterFilter(boolean onlyRelativeClient, int maxRedirects)Create a new instance, performing relative redirects only forHttpConnection.RedirectingHttpRequesterFilter(int maxRedirects)Create a new instance, only performing relative redirects.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StreamingHttpClientFiltercreate(FilterableStreamingHttpClient client)Creates aStreamingHttpClientFilterusing the providedStreamingHttpClientFilter.StreamingHttpConnectionFiltercreate(FilterableStreamingHttpConnection connection)Create aStreamingHttpConnectionFilterusing the providedFilterableStreamingHttpConnection.HttpExecutionStrategyinfluenceStrategy(HttpExecutionStrategy strategy)Optionally modify the passedHttpExecutionStrategyto a newHttpExecutionStrategythat suits thisHttpExecutionStrategyInfluencer.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.servicetalk.http.api.StreamingHttpClientFilterFactory
append, asMultiAddressClientFilter
-
Methods inherited from interface io.servicetalk.http.api.StreamingHttpConnectionFilterFactory
append
-
-
-
-
Constructor Detail
-
RedirectingHttpRequesterFilter
public RedirectingHttpRequesterFilter()
Create a new instance, only performing relative redirects.
-
RedirectingHttpRequesterFilter
public RedirectingHttpRequesterFilter(int maxRedirects)
Create a new instance, only performing relative redirects.- Parameters:
maxRedirects- The maximum number of follow up redirects.
-
RedirectingHttpRequesterFilter
public RedirectingHttpRequesterFilter(boolean onlyRelativeClient)
Create a new instance, performing relative redirects only forHttpConnection.- Parameters:
onlyRelativeClient- Limits the redirects to relative paths forHttpClientfilters.
-
RedirectingHttpRequesterFilter
public RedirectingHttpRequesterFilter(boolean onlyRelativeClient, int maxRedirects)Create a new instance, performing relative redirects only forHttpConnection.- Parameters:
onlyRelativeClient- Limits the redirects to relative paths forHttpClientfilters.maxRedirects- The maximum number of follow up redirects.
-
RedirectingHttpRequesterFilter
public RedirectingHttpRequesterFilter(boolean onlyRelativeClient, boolean onlyRelativeConnection)Create a new instance.- Parameters:
onlyRelativeClient- Limits the redirects to relative paths forHttpClientfilters.onlyRelativeConnection- Limits the redirects to relative paths forHttpConnectionfilters.
-
RedirectingHttpRequesterFilter
public RedirectingHttpRequesterFilter(boolean onlyRelativeClient, boolean onlyRelativeConnection, int maxRedirects)Create a new instance.- Parameters:
onlyRelativeClient- Limits the redirects to relative paths forHttpClientfilters.onlyRelativeConnection- Limits the redirects to relative paths forHttpConnectionfilters.maxRedirects- The maximum number of follow up redirects.
-
-
Method Detail
-
create
public StreamingHttpClientFilter create(FilterableStreamingHttpClient client)
Description copied from interface:StreamingHttpClientFilterFactoryCreates aStreamingHttpClientFilterusing the providedStreamingHttpClientFilter.- Specified by:
createin interfaceStreamingHttpClientFilterFactory- Parameters:
client-FilterableStreamingHttpClientto filter- Returns:
StreamingHttpClientFilterusing the providedStreamingHttpClientFilter.
-
create
public StreamingHttpConnectionFilter create(FilterableStreamingHttpConnection connection)
Description copied from interface:StreamingHttpConnectionFilterFactoryCreate aStreamingHttpConnectionFilterusing the providedFilterableStreamingHttpConnection.- Specified by:
createin interfaceStreamingHttpConnectionFilterFactory- Parameters:
connection-FilterableStreamingHttpConnectionto filter- Returns:
StreamingHttpConnectionFilterusing the providedFilterableStreamingHttpConnection.
-
influenceStrategy
public HttpExecutionStrategy influenceStrategy(HttpExecutionStrategy strategy)
Description copied from interface:HttpExecutionStrategyInfluencerOptionally modify the passedHttpExecutionStrategyto a newHttpExecutionStrategythat suits thisHttpExecutionStrategyInfluencer.- Specified by:
influenceStrategyin interfaceHttpExecutionStrategyInfluencer- Parameters:
strategy-HttpExecutionStrategyto influence.- Returns:
HttpExecutionStrategythat suits thisHttpExecutionStrategyInfluencer
-
-