public final class MethodOverride implements HttpExecuteInterceptor, HttpRequestInitializerThread-safe HTTP request execute interceptor for Google API's that wraps HTTP requests inside of a POST request and uses #HEADER header to specify the actual HTTP method.
Use this for example for an HTTP transport that doesn't support PATCH like
NetHttpTransport or UrlFetchTransport. By default, only the methods not supported by the
transport will be overridden. When running behind a firewall that does not support certain verbs
like PATCH, use the MethodOverride.Builder#setOverrideAllMethods(boolean) constructor
instead to specify to override all methods. POST is never overridden.
This class also allows GET requests with a long URL (> 2048 chars) to be instead sent using method override as a POST request.
Sample usage, taking advantage that this class implements HttpRequestInitializer:
public static HttpRequestFactory createRequestFactory(HttpTransport transport) {
return transport.createRequestFactory(new MethodOverride());
}
If you have a custom request initializer, take a look at the sample usage for HttpExecuteInterceptor, which this class also implements.
Implements
com.google.api.client.http.HttpExecuteInterceptor, com.google.api.client.http.HttpRequestInitializerStatic Fields
HEADER
public static final String HEADERName of the method override header.
| Field Value | |
|---|---|
| Type | Description |
String |
|
Constructors
MethodOverride()
public MethodOverride()Only overrides HTTP methods that the HTTP transport does not support.
Methods
initialize(HttpRequest request)
public void initialize(HttpRequest request)| Parameter | |
|---|---|
| Name | Description |
request |
com.google.api.client.http.HttpRequest |
intercept(HttpRequest request)
public void intercept(HttpRequest request)| Parameter | |
|---|---|
| Name | Description |
request |
com.google.api.client.http.HttpRequest |
| Exceptions | |
|---|---|
| Type | Description |
IOException |
|