public class HttpRequest extends Object
The properties of this request represents what was received in the request and are thus immutable. If you need mutable abstractions, use a higher level framework, e.g. Processing.
Modifier and Type | Class and Description |
---|---|
static class |
HttpRequest.Builder
Builder of HTTP requests
|
private static class |
HttpRequest.MockCurrentContainer
Helper class for testing only.
|
Modifier and Type | Field and Description |
---|---|
private com.yahoo.jdisc.http.HttpRequest |
parentRequest |
private Map<String,String> |
properties |
private InputStream |
requestData |
Constructor and Description |
---|
HttpRequest(com.yahoo.jdisc.http.HttpRequest jdiscHttpRequest,
InputStream requestData)
Wrap a JDisc HTTP request in a synchronous API.
|
HttpRequest(com.yahoo.jdisc.http.HttpRequest jdiscHttpRequest,
InputStream requestData,
Map<String,String> propertyOverrides)
Wrap a JDisc HTTP request in a synchronous API.
|
Modifier and Type | Method and Description |
---|---|
private static Map<String,String> |
copyProperties(Map<String,List<String>> parameters,
Map<String,String> parameterMask) |
static HttpRequest |
createRequest(com.yahoo.jdisc.service.CurrentContainer container,
URI uri,
com.yahoo.jdisc.http.HttpRequest.Method method,
InputStream requestData)
Create a new HTTP request from an URI.
|
static HttpRequest |
createRequest(com.yahoo.jdisc.service.CurrentContainer container,
URI uri,
com.yahoo.jdisc.http.HttpRequest.Method method,
InputStream requestData,
Map<String,String> properties)
Create a new HTTP request from an URI.
|
static HttpRequest |
createTestRequest(String uri,
com.yahoo.jdisc.http.HttpRequest.Method method)
Only for simpler unit testing.
|
static HttpRequest |
createTestRequest(String uri,
com.yahoo.jdisc.http.HttpRequest.Method method,
InputStream requestData)
Only for simpler unit testing.
|
static HttpRequest |
createTestRequest(String uri,
com.yahoo.jdisc.http.HttpRequest.Method method,
InputStream requestData,
Map<String,String> properties) |
private static URI |
createUri(String request) |
private static boolean |
existsAsOriginalParameter(List<String> value) |
Optional<com.yahoo.container.logging.AccessLogEntry> |
getAccessLogEntry() |
boolean |
getBooleanProperty(String name)
Helper method to parse boolean request flags, using
Boolean.parseBoolean(String).
|
InputStream |
getData()
The input stream for this request, i.e.
|
String |
getHeader(String name)
Access an HTTP header in the request.
|
String |
getHost()
Get the host segment of the URI of this request.
|
static Optional<HttpRequest> |
getHttpRequest(com.yahoo.processing.Request processingRequest) |
com.yahoo.jdisc.http.HttpRequest |
getJDiscRequest()
Access the underlying JDisc for this HTTP request.
|
com.yahoo.jdisc.http.HttpRequest.Method |
getMethod()
Return the HTTP method (GET, POST...) of the incoming request.
|
int |
getPort()
The port of the URI of this request.
|
String |
getProperty(String name)
Returns the value of a request property/parameter.
|
URI |
getUri()
Get the full URI corresponding to this request.
|
boolean |
hasProperty(String name)
Check whether a property exists.
|
Map<String,String> |
propertyMap()
Return a read-only view of the request parameters.
|
private static void |
setProperties(com.yahoo.jdisc.http.HttpRequest clientRequest,
Map<String,String> properties) |
private static List<String> |
wrap(String value) |
private final com.yahoo.jdisc.http.HttpRequest parentRequest
private final InputStream requestData
public HttpRequest(com.yahoo.jdisc.http.HttpRequest jdiscHttpRequest, InputStream requestData)
jdiscHttpRequest
- the JDisc requestrequestData
- the associated input stream, e.g. with POST requestpublic HttpRequest(com.yahoo.jdisc.http.HttpRequest jdiscHttpRequest, InputStream requestData, Map<String,String> propertyOverrides)
jdiscHttpRequest
- the JDisc requestrequestData
- the associated input stream, e.g. with POST requestpropertyOverrides
- properties which should not have the same settings as in the
parent JDisc request, may be nullpublic static HttpRequest createRequest(com.yahoo.jdisc.service.CurrentContainer container, URI uri, com.yahoo.jdisc.http.HttpRequest.Method method, InputStream requestData)
container
- the current container instanceuri
- the request parametersmethod
- GET, POST, etcrequestData
- the associated data stream, may be nullpublic static HttpRequest createRequest(com.yahoo.jdisc.service.CurrentContainer container, URI uri, com.yahoo.jdisc.http.HttpRequest.Method method, InputStream requestData, Map<String,String> properties)
container
- the current container instanceuri
- the request parametersmethod
- GET, POST, etcrequestData
- the associated data stream, may be nullproperties
- a set of properties to set in the request in addition to the implicit ones from the URIprivate static void setProperties(com.yahoo.jdisc.http.HttpRequest clientRequest, Map<String,String> properties)
public static Optional<HttpRequest> getHttpRequest(com.yahoo.processing.Request processingRequest)
public Optional<com.yahoo.container.logging.AccessLogEntry> getAccessLogEntry()
public static HttpRequest createTestRequest(String uri, com.yahoo.jdisc.http.HttpRequest.Method method)
uri
- the complete URI stringmethod
- POST, GET, etcpublic static HttpRequest createTestRequest(String uri, com.yahoo.jdisc.http.HttpRequest.Method method, InputStream requestData)
uri
- the complete URI stringmethod
- POST, GET, etcrequestData
- for simulating POSTpublic static HttpRequest createTestRequest(String uri, com.yahoo.jdisc.http.HttpRequest.Method method, InputStream requestData, Map<String,String> properties)
private static Map<String,String> copyProperties(Map<String,List<String>> parameters, Map<String,String> parameterMask)
public com.yahoo.jdisc.http.HttpRequest.Method getMethod()
public URI getUri()
public com.yahoo.jdisc.http.HttpRequest getJDiscRequest()
public String getProperty(String name)
name
- the name of the URI property to returnpublic Map<String,String> propertyMap()
public boolean getBooleanProperty(String name)
name
- the name of a request propertypublic boolean hasProperty(String name)
name
- the name of a request propertypublic String getHeader(String name)
name
- the name of an HTTP headerpublic String getHost()
public int getPort()
public InputStream getData()
Copyright © 2017. All rights reserved.