@Contract(threading=IMMUTABLE) public class RequestContent extends Object implements HttpRequestInterceptor
Content-Length or Transfer-Content headers based
on the properties of the enclosed entity and the protocol version.
This interceptor is essential for the HTTP protocol conformance and the correct operation of the client-side message processing pipeline.
| Modifier and Type | Field and Description |
|---|---|
static HttpRequestInterceptor |
INSTANCE
Singleton instance.
|
| Constructor and Description |
|---|
RequestContent()
Default constructor.
|
RequestContent(boolean overwrite)
Constructor that can be used to fine-tune behavior of this interceptor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
process(HttpRequest request,
EntityDetails entity,
HttpContext context)
Processes a request.
|
void |
validateOptionsContentType(HttpRequest request)
Validates the presence of the Content-Type header for an OPTIONS request.
|
public static final HttpRequestInterceptor INSTANCE
public RequestContent()
Content-Length or Transfer-Encoding
will cause the interceptor to throw ProtocolException if already present in the
response message.public RequestContent(boolean overwrite)
overwrite - If set to true the Content-Length and
Transfer-Encoding headers will be created or updated if already present.
If set to false the Content-Length and
Transfer-Encoding headers will cause the interceptor to throw
ProtocolException if already present in the response message.public void process(HttpRequest request, EntityDetails entity, HttpContext context) throws HttpException, IOException
HttpRequestInterceptorprocess in interface HttpRequestInterceptorrequest - the request to processentity - the request entity details or null if not availablecontext - the context for the requestHttpException - in case of an HTTP protocol violationIOException - in case of an I/O errorpublic void validateOptionsContentType(HttpRequest request) throws ProtocolException
According to the RFC specifications, an HTTP Method.OPTIONS request that contains content
must have a Content-Type header. This method checks for the presence of the Content-Type header
in such requests. It does not validate the actual value of the Content-Type header, as determining
its validity would require knowledge of all valid media types, which is beyond the scope of this method.
If the header is absent, a ProtocolException is thrown.
Note: This method does not check the validity of the Content-Type header value, only its presence.
request - The HttpRequest to be validated for the presence of the Content-Type header. Must not be null.ProtocolException - If the Content-Type header is missing in an OPTIONS request with content.Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.