- java.lang.Object
-
- jdk.incubator.http.HttpRequest.Builder
-
- Enclosing class:
- HttpRequest
public abstract static class HttpRequest.Builder extends Object
A builder ofHttpRequest
s.
Incubating Feature. Will be removed in a future release.HttpRequest.Builder
s are created by callingHttpRequest.newBuilder(URI)
orHttpRequest.newBuilder()
.Each of the setter methods in this class modifies the state of the builder and returns this (ie. the same instance). The methods are not synchronized and should not be called from multiple threads without external synchronization.
Note, that not all request headers may be set by user code. Some are restricted for security reasons and others such as the headers relating to authentication, redirection and cookie management are managed by specific APIs rather than through directly user set headers.
The build method returns a new
HttpRequest
each time it is invoked.- Since:
- 9
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Builder()
Creates a Builder.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract HttpRequest
build()
Builds and returns aHttpRequest
.abstract HttpRequest.Builder
copy()
Returns an exact duplicate copy of thisBuilder
based on current state.abstract HttpRequest.Builder
DELETE(HttpRequest.BodyProcessor body)
Sets the request method of this builder to DELETE and sets its request body processor to the given value.abstract HttpRequest.Builder
expectContinue(boolean enable)
Request server to acknowledge request before sending request body.abstract HttpRequest.Builder
GET()
Sets the request method of this builder to GET.abstract HttpRequest.Builder
header(String name, String value)
Adds the given name value pair to the set of headers for this request.abstract HttpRequest.Builder
headers(String... headers)
Adds the given name value pairs to the set of headers for this request.abstract HttpRequest.Builder
method(String method, HttpRequest.BodyProcessor body)
Sets the request method and request body of this builder to the given values.abstract HttpRequest.Builder
POST(HttpRequest.BodyProcessor body)
Sets the request method of this builder to POST and sets its request body processor to the given value.abstract HttpRequest.Builder
PUT(HttpRequest.BodyProcessor body)
Sets the request method of this builder to PUT and sets its request body processor to the given value.abstract HttpRequest.Builder
setHeader(String name, String value)
Sets the given name value pair to the set of headers for this request.abstract HttpRequest.Builder
timeout(Duration duration)
Sets a timeout for this request.abstract HttpRequest.Builder
uri(URI uri)
Sets thisHttpRequest
's requestURI
.abstract HttpRequest.Builder
version(HttpClient.Version version)
Sets the preferredHttpClient.Version
for this request.
-
-
-
Method Detail
-
uri
public abstract HttpRequest.Builder uri(URI uri)
Sets thisHttpRequest
's requestURI
.- Parameters:
uri
- the request URI- Returns:
- this request builder
- Throws:
IllegalArgumentException
- if theURI
scheme is not supported.
-
expectContinue
public abstract HttpRequest.Builder expectContinue(boolean enable)
Request server to acknowledge request before sending request body. This is disabled by default. If enabled, the server is requested to send an error response or a100 Continue
response before the client sends the request body. This means the request processor for the request will not be invoked until this interim response is received.- Parameters:
enable
-true
if Expect continue to be sent- Returns:
- this request builder
-
version
public abstract HttpRequest.Builder version(HttpClient.Version version)
Sets the preferredHttpClient.Version
for this request. The correspondingHttpResponse
should be checked for the version that was used. If the version is not set in a request, then the version requested will be that of the sendingHttpClient
.- Parameters:
version
- the HTTP protocol version requested- Returns:
- this request builder
-
header
public abstract HttpRequest.Builder header(String name, String value)
Adds the given name value pair to the set of headers for this request.- Parameters:
name
- the header namevalue
- the header value- Returns:
- this request builder
-
headers
public abstract HttpRequest.Builder headers(String... headers)
Adds the given name value pairs to the set of headers for this request. The suppliedString
s must alternate as names and values.- Parameters:
headers
- the list of String name value pairs- Returns:
- this request builder
- Throws:
IllegalArgumentException
- if there is an odd number of parameters
-
timeout
public abstract HttpRequest.Builder timeout(Duration duration)
Sets a timeout for this request. If the response is not received within the specified timeout then aHttpTimeoutException
is thrown fromHttpClient::send
orHttpClient::sendAsync
completes exceptionally with aHttpTimeoutException
. The effect of not setting a timeout is the same as setting an infinite Duration, ie. block forever.- Parameters:
duration
- the timeout duration- Returns:
- this request builder
-
setHeader
public abstract HttpRequest.Builder setHeader(String name, String value)
Sets the given name value pair to the set of headers for this request. This overwrites any previously set values for name.- Parameters:
name
- the header namevalue
- the header value- Returns:
- this request builder
-
GET
public abstract HttpRequest.Builder GET()
Sets the request method of this builder to GET.- Returns:
- a
HttpRequest
-
POST
public abstract HttpRequest.Builder POST(HttpRequest.BodyProcessor body)
Sets the request method of this builder to POST and sets its request body processor to the given value.- Parameters:
body
- the body processor- Returns:
- a
HttpRequest
-
PUT
public abstract HttpRequest.Builder PUT(HttpRequest.BodyProcessor body)
Sets the request method of this builder to PUT and sets its request body processor to the given value.- Parameters:
body
- the body processor- Returns:
- a
HttpRequest
-
DELETE
public abstract HttpRequest.Builder DELETE(HttpRequest.BodyProcessor body)
Sets the request method of this builder to DELETE and sets its request body processor to the given value.- Parameters:
body
- the body processor- Returns:
- a
HttpRequest
-
method
public abstract HttpRequest.Builder method(String method, HttpRequest.BodyProcessor body)
Sets the request method and request body of this builder to the given values.- Parameters:
body
- the body processormethod
- the method to use- Returns:
- a
HttpRequest
- Throws:
IllegalArgumentException
- if an unrecognized method is used
-
build
public abstract HttpRequest build()
Builds and returns aHttpRequest
.- Returns:
- the request
-
copy
public abstract HttpRequest.Builder copy()
Returns an exact duplicate copy of thisBuilder
based on current state. The new builder can then be modified independently of this builder.- Returns:
- an exact copy of this Builder
-
-