Package org.apache.http.protocol
Class HttpService
- java.lang.Object
-
- org.apache.http.protocol.HttpService
-
@Contract(threading=IMMUTABLE_CONDITIONAL) public class HttpService extends java.lang.Object
HttpService
is a server side HTTP protocol handler based on the classic (blocking) I/O model.HttpService
relies onHttpProcessor
to generate mandatory protocol headers for all outgoing messages and apply common, cross-cutting message transformations to all incoming and outgoing messages, whereas individualHttpRequestHandler
s are expected to implement application specific content generation and processing.HttpService
usesHttpRequestHandlerMapper
to map matching request handler for a particular request URI of an incoming HTTP request.HttpService
can use optionalHttpExpectationVerifier
to ensure that incoming requests meet server's expectations.- Since:
- 4.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
HttpService.HttpRequestHandlerResolverAdapter
Deprecated.Do not use.
-
Field Summary
Fields Modifier and Type Field Description private ConnectionReuseStrategy
connStrategy
private HttpExpectationVerifier
expectationVerifier
private HttpRequestHandlerMapper
handlerMapper
private HttpParams
params
TODO: make all variables final in the next major versionprivate HttpProcessor
processor
private HttpResponseFactory
responseFactory
-
Constructor Summary
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private boolean
canResponseHaveBody(HttpRequest request, HttpResponse response)
protected void
doService(HttpRequest request, HttpResponse response, HttpContext context)
The default implementation of this method attempts to resolve anHttpRequestHandler
for the request URI of the given request and, if found, executes itsHttpRequestHandler.handle(HttpRequest, HttpResponse, HttpContext)
method.HttpParams
getParams()
Deprecated.(4.3) no longer used.protected void
handleException(HttpException ex, HttpResponse response)
Handles the given exception and generates an HTTP response to be sent back to the client to inform about the exceptional condition encountered in the course of the request processing.void
handleRequest(HttpServerConnection conn, HttpContext context)
Handles receives one HTTP request over the given connection within the given execution context and sends a response back to the client.void
setConnReuseStrategy(ConnectionReuseStrategy connStrategy)
Deprecated.(4.1) setConnectionReuseStrategy
using constructorvoid
setExpectationVerifier(HttpExpectationVerifier expectationVerifier)
Deprecated.(4.1) setHttpExpectationVerifier
using constructorvoid
setHandlerResolver(HttpRequestHandlerResolver handlerResolver)
Deprecated.(4.1) setHttpRequestHandlerResolver
using constructorvoid
setHttpProcessor(HttpProcessor processor)
Deprecated.(4.1) setHttpProcessor
using constructorvoid
setParams(HttpParams params)
Deprecated.(4.1) setHttpResponseFactory
using constructorvoid
setResponseFactory(HttpResponseFactory responseFactory)
Deprecated.(4.1) setHttpResponseFactory
using constructor
-
-
-
Field Detail
-
params
private volatile HttpParams params
TODO: make all variables final in the next major version
-
processor
private volatile HttpProcessor processor
-
handlerMapper
private volatile HttpRequestHandlerMapper handlerMapper
-
connStrategy
private volatile ConnectionReuseStrategy connStrategy
-
responseFactory
private volatile HttpResponseFactory responseFactory
-
expectationVerifier
private volatile HttpExpectationVerifier expectationVerifier
-
-
Constructor Detail
-
HttpService
@Deprecated public HttpService(HttpProcessor processor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpRequestHandlerResolver handlerResolver, HttpExpectationVerifier expectationVerifier, HttpParams params)
Deprecated.Create a new HTTP service.- Parameters:
processor
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategyresponseFactory
- the response factoryhandlerResolver
- the handler resolver. May be null.expectationVerifier
- the expectation verifier. May be null.params
- the HTTP parameters- Since:
- 4.1
-
HttpService
@Deprecated public HttpService(HttpProcessor processor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpRequestHandlerResolver handlerResolver, HttpParams params)
Deprecated.Create a new HTTP service.- Parameters:
processor
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategyresponseFactory
- the response factoryhandlerResolver
- the handler resolver. May be null.params
- the HTTP parameters- Since:
- 4.1
-
HttpService
@Deprecated public HttpService(HttpProcessor proc, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory)
Deprecated.Create a new HTTP service.- Parameters:
proc
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategyresponseFactory
- the response factory
-
HttpService
public HttpService(HttpProcessor processor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpRequestHandlerMapper handlerMapper, HttpExpectationVerifier expectationVerifier)
Create a new HTTP service.- Parameters:
processor
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategy. Ifnull
DefaultConnectionReuseStrategy.INSTANCE
will be used.responseFactory
- the response factory. Ifnull
DefaultHttpResponseFactory.INSTANCE
will be used.handlerMapper
- the handler mapper. May be null.expectationVerifier
- the expectation verifier. May be null.- Since:
- 4.3
-
HttpService
public HttpService(HttpProcessor processor, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory, HttpRequestHandlerMapper handlerMapper)
Create a new HTTP service.- Parameters:
processor
- the processor to use on requests and responsesconnStrategy
- the connection reuse strategy. Ifnull
DefaultConnectionReuseStrategy.INSTANCE
will be used.responseFactory
- the response factory. Ifnull
DefaultHttpResponseFactory.INSTANCE
will be used.handlerMapper
- the handler mapper. May be null.- Since:
- 4.3
-
HttpService
public HttpService(HttpProcessor processor, HttpRequestHandlerMapper handlerMapper)
Create a new HTTP service.- Parameters:
processor
- the processor to use on requests and responseshandlerMapper
- the handler mapper. May be null.- Since:
- 4.3
-
-
Method Detail
-
setHttpProcessor
@Deprecated public void setHttpProcessor(HttpProcessor processor)
Deprecated.(4.1) setHttpProcessor
using constructor
-
setConnReuseStrategy
@Deprecated public void setConnReuseStrategy(ConnectionReuseStrategy connStrategy)
Deprecated.(4.1) setConnectionReuseStrategy
using constructor
-
setResponseFactory
@Deprecated public void setResponseFactory(HttpResponseFactory responseFactory)
Deprecated.(4.1) setHttpResponseFactory
using constructor
-
setParams
@Deprecated public void setParams(HttpParams params)
Deprecated.(4.1) setHttpResponseFactory
using constructor
-
setHandlerResolver
@Deprecated public void setHandlerResolver(HttpRequestHandlerResolver handlerResolver)
Deprecated.(4.1) setHttpRequestHandlerResolver
using constructor
-
setExpectationVerifier
@Deprecated public void setExpectationVerifier(HttpExpectationVerifier expectationVerifier)
Deprecated.(4.1) setHttpExpectationVerifier
using constructor
-
getParams
@Deprecated public HttpParams getParams()
Deprecated.(4.3) no longer used.
-
handleRequest
public void handleRequest(HttpServerConnection conn, HttpContext context) throws java.io.IOException, HttpException
Handles receives one HTTP request over the given connection within the given execution context and sends a response back to the client.- Parameters:
conn
- the active connection to the clientcontext
- the actual execution context.- Throws:
java.io.IOException
- in case of an I/O error.HttpException
- in case of HTTP protocol violation or a processing problem.
-
canResponseHaveBody
private boolean canResponseHaveBody(HttpRequest request, HttpResponse response)
-
handleException
protected void handleException(HttpException ex, HttpResponse response)
Handles the given exception and generates an HTTP response to be sent back to the client to inform about the exceptional condition encountered in the course of the request processing.- Parameters:
ex
- the exception.response
- the HTTP response.
-
doService
protected void doService(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, java.io.IOException
The default implementation of this method attempts to resolve anHttpRequestHandler
for the request URI of the given request and, if found, executes itsHttpRequestHandler.handle(HttpRequest, HttpResponse, HttpContext)
method.Super-classes can override this method in order to provide a custom implementation of the request processing logic.
- Parameters:
request
- the HTTP request.response
- the HTTP response.context
- the execution context.- Throws:
java.io.IOException
- in case of an I/O error.HttpException
- in case of HTTP protocol violation or a processing problem.
-
-