87 * A builder of {@linkplain HttpRequest HTTP requests}. |
87 * A builder of {@linkplain HttpRequest HTTP requests}. |
88 * |
88 * |
89 * <p> Instances of {@code HttpRequest.Builder} are created by calling {@link |
89 * <p> Instances of {@code HttpRequest.Builder} are created by calling {@link |
90 * HttpRequest#newBuilder(URI)} or {@link HttpRequest#newBuilder()}. |
90 * HttpRequest#newBuilder(URI)} or {@link HttpRequest#newBuilder()}. |
91 * |
91 * |
92 * <p> Each of the setter methods modifies the state of the builder |
92 * <p> The builder can be used to configure per-request state, such as: the |
93 * and returns the same instance. The methods are not synchronized and |
93 * request URI, the request method (default is GET unless explicitly set), |
94 * should not be called from multiple threads without external |
94 * specific request headers, etc. Each of the setter methods modifies the |
95 * synchronization. The {@link #build() build} method returns a new |
95 * state of the builder and returns the same instance. The methods are not |
|
96 * synchronized and should not be called from multiple threads without |
|
97 * external synchronization. The {@link #build() build} method returns a new |
96 * {@code HttpRequest} each time it is invoked. Once built an {@code |
98 * {@code HttpRequest} each time it is invoked. Once built an {@code |
97 * HttpRequest} is immutable, and can be sent multiple times. |
99 * HttpRequest} is immutable, and can be sent multiple times. |
98 * |
100 * |
99 * <p> Note, that not all request headers may be set by user code. Some are |
101 * <p> Note, that not all request headers may be set by user code. Some are |
100 * restricted for security reasons and others such as the headers relating |
102 * restricted for security reasons and others such as the headers relating |