pub struct RequestBuilder { /* private fields */ }Expand description
Builder pattern for constructing HttpRequest instances.
The RequestBuilder struct facilitates the creation of HttpRequest objects
through a series of method calls. It allows for flexible and clear configuration of
an HTTP request’s components such as method, URL, headers, and body.
§Fields
http_request: A temporaryHttpRequestinstance used to accumulate changes during the construction process. It holds the current state of the builder.builder: A finalizedHttpRequestinstance that holds the result after the builder process has been completed. It is returned when the builder is finalized.
This builder simplifies the creation of HttpRequest objects, ensuring thread-safety
and immutability of shared references, while providing a fluent API for constructing
HTTP requests with various configurations.
Implementations§
Source§impl RequestBuilder
impl RequestBuilder
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new instance of the builder with default values.
This method initializes the RequestBuilder with default values for all
fields.
§Returns
Returns a new instance of RequestBuilder.
Sourcepub fn http1_1_only(&mut self) -> &mut Self
pub fn http1_1_only(&mut self) -> &mut Self
Sets the HTTP version to 1.1 for the request configuration.
This method updates the HTTP version to HTTP1_1 for the current
http_request configuration. It allows the user to force the
request to use HTTP 1.1 only, overriding any other version that may
have been previously set.
§Returns
Returns a mutable reference to self to allow method chaining.
Sourcepub fn http2_only(&mut self) -> &mut Self
pub fn http2_only(&mut self) -> &mut Self
Sets the HTTP version to 2.0 for the request configuration.
This method updates the HTTP version to HTTP2 for the current
http_request configuration. It allows the user to force the
request to use HTTP 2.0 only, overriding any other version that may
have been previously set.
§Returns
Returns a mutable reference to self to allow method chaining.
Sourcepub fn headers<K, V, T>(&mut self, header: T) -> &mut Self
pub fn headers<K, V, T>(&mut self, header: T) -> &mut Self
Sets the headers for the request.
This method allows you to specify the headers for the request being built. Existing headers may be merged with the provided ones.
§Parameters
header: The headers to be set for the request.
§Returns
Returns a mutable reference to the RequestBuilder to allow method chaining.
Sourcepub fn json(&mut self, body: HashMap<&'static str, &'static str>) -> &mut Self
pub fn json(&mut self, body: HashMap<&'static str, &'static str>) -> &mut Self
Sets the JSON body of the request.
This method allows you to set the body of the request as JSON data. If there is existing body data, it will be replaced with the provided JSON data.
§Parameters
body: The JSON body data to be set for the request.
§Returns
Returns a mutable reference to the RequestBuilder to allow method chaining.
Sourcepub fn text(&mut self, body: &'static str) -> &mut Self
pub fn text(&mut self, body: &'static str) -> &mut Self
Sets the text body of the request.
This method allows you to set the body of the request as plain text. If there is existing body data, it will be replaced with the provided text data.
§Parameters
body: The text body data to be set for the request.
§Returns
Returns a mutable reference to the RequestBuilder to allow method chaining.
Sourcepub fn body(&mut self, body: &'static [u8]) -> &mut Self
pub fn body(&mut self, body: &'static [u8]) -> &mut Self
Sets the HTTP request body to the given binary content.
This method assigns the provided binary data to the body of the HTTP request.
The body is wrapped in an Arc to enable shared ownership and safe concurrency.
§Parameters
body- ABodyBinaryrepresenting the binary content to be used as the HTTP request body.
§Returns
Returns a mutable reference to the current instance of the struct, allowing method chaining.
§Notes
This method overrides any previously set body. Use it when you want to assign binary content specifically as the body of the HTTP request.
Sourcepub fn timeout(&mut self, timeout: u64) -> &mut Self
pub fn timeout(&mut self, timeout: u64) -> &mut Self
Sets the timeout value for the current connection.
This method sets the timeout duration for the connection, which is used to determine
how long the system should wait for a response before considering the connection attempt
as failed. The timeout value is stored in an Arc to allow it to be shared safely across
multiple threads if needed.
§Parameters
timeout: The timeout duration in seconds. This value will be used to configure the connection timeout.
§Returns
Returns a mutable reference to the RequestBuilder to allow method chaining.
Sourcepub fn redirect(&mut self) -> &mut Self
pub fn redirect(&mut self) -> &mut Self
Enables HTTP redirection for the request.
This method sets the redirect property of the http_request to true.
It returns a mutable reference to the current instance, allowing method chaining.
Sourcepub fn unredirect(&mut self) -> &mut Self
pub fn unredirect(&mut self) -> &mut Self
Unenables HTTP redirection for the request.
This method sets the redirect property of the http_request to false.
It returns a mutable reference to the current instance, allowing method chaining.
Sourcepub fn max_redirect_times(&mut self, num: usize) -> &mut Self
pub fn max_redirect_times(&mut self, num: usize) -> &mut Self
Sets the maximum number of allowed redirections for the HTTP request.
This method updates the max_redirect_times field in the configuration and returns a mutable
reference to self to enable method chaining.
§Parameters
num- The maximum number of redirections allowed. A value of0disables redirection.
§Returns
A mutable reference to the current instance for method chaining.
§Notes
Ensure that the value provided to num is within a valid range. Excessively high values
may lead to performance issues or unintended behavior.
Sourcepub fn buffer(&mut self, buffer: usize) -> &mut Self
pub fn buffer(&mut self, buffer: usize) -> &mut Self
Sets the buffer size for the HTTP request configuration.
This method allows you to set the size of the buffer used for reading
the HTTP response. It modifies the buffer field of the HTTP request’s
configuration, which will be used when processing the response data.
§Parameters
buffer: The size of the buffer to be used, in bytes.
§Returns
Returns a mutable reference to self, allowing for method chaining.
Sourcepub fn decode(&mut self) -> &mut Self
pub fn decode(&mut self) -> &mut Self
Enables automatic response decoding.
When enabled, the response body will be automatically decompressed if it is encoded
using a supported compression format (e.g., gzip, deflate, br).
§Returns
A mutable reference to the current instance, allowing for method chaining.
Sourcepub fn undecode(&mut self) -> &mut Self
pub fn undecode(&mut self) -> &mut Self
Disables automatic response decoding.
When disabled, the response body will not be automatically decompressed, and the raw encoded data will be returned as-is.
§Returns
A mutable reference to the current instance, allowing for method chaining.
Sourcepub fn builder(&mut self) -> BoxRequestTrait
pub fn builder(&mut self) -> BoxRequestTrait
Finalizes the builder and returns a fully constructed HttpRequest instance.
This method takes the current configuration stored in http_request, creates a new
HttpRequest instance with the configuration, and resets the builder’s temporary
state for further use.
§Returns
Returns a fully constructed BoxRequestTrait instance based on the current builder state.
Trait Implementations§
Source§impl Clone for RequestBuilder
impl Clone for RequestBuilder
Source§fn clone(&self) -> RequestBuilder
fn clone(&self) -> RequestBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more