public interface HttpRequestFilter
This interface implemented by client
and registered via HttpClientBuilder.addRequestFilter(com.oracle.httpclient.HttpRequestFilter)
method.
HttpRequestFilter is executed before the client request is delivered to the network.
The following example shows an implementation of a request filter that adds 'User Agent' header to a request:
public class UserAgentFilter implements HttpRequestFilter { private final String userAgent; public UserAgentFilter() { userAgent = "Profile/" + System.getProperty("microedition.profiles") + " Configuration/" + System.getProperty("microedition.configuration"); } @Override public void filter(ProcessedHttpRequest request, HttpRequestProcessingContext processingContext) { if (!request.getHeaders().contains(HttpHeader.USER_AGENT)) { request.getHeaders().setHeaderValue(HttpHeader.USER_AGENT, userAgent); } } }
HttpRequestFilter can abandon the execution of corresponding request by calling HttpRequestProcessingContext.breakRequestProcessing(com.oracle.httpclient.HttpResponse, boolean)
public class BlockingFilter implements HttpRequestFilter { private final String blockedURI; public BlockingFilter(String uri) { this.blockedURI = uri; } @Override public void filter(ProcessedHttpRequest request, HttpRequestProcessingContext context) { if (request.getURI().equals(blockedURI)) { HttpResponseBuilder responseBuilder = HttpResponseBuilder.getInstance() .setResponseCode(HttpResponse.FORBIDDEN); context.breakRequestProcessing(responseBuilder.build(), false); } } }
HttpRequestProcessingContext
Modifier and Type | Method and Description |
---|---|
void |
filter(ProcessedHttpRequest request,
HttpRequestProcessingContext context)
This method is called before the request is sent.
|
void filter(ProcessedHttpRequest request, HttpRequestProcessingContext context)
request
- outbound request.context
- request processing context.Copyright © 2013, 2014, Oracle and/or its affiliates. All rights reserved.