pub struct Request { /* private fields */ }
Expand description
An HTTP request.
Generally created by the minreq::get
-style
functions, corresponding to the HTTP method we want to use.
Example
let request = minreq::post("http://example.com");
After creating the request, you would generally call
send
or
send_lazy
on it, as it
doesn’t do much on its own.
Implementations§
source§impl Request
impl Request
sourcepub fn new<T: Into<URL>>(method: Method, url: T) -> Request
pub fn new<T: Into<URL>>(method: Method, url: T) -> Request
Creates a new HTTP Request
.
This is only the request’s data, it is not sent yet. For
sending the request, see send
.
If urlencoding
is not enabled, it is the responsibility of the
user to ensure there are no illegal characters in the URL.
If urlencoding
is enabled, the resource part of the URL will be
encoded. Any URL special characters (e.g. &, #, =) are not encoded
as they are assumed to be meaningful parameters etc.
sourcepub fn with_headers<T, K, V>(self, headers: T) -> Requestwhere
T: IntoIterator<Item = (K, V)>,
K: Into<String>,
V: Into<String>,
pub fn with_headers<T, K, V>(self, headers: T) -> Requestwhere T: IntoIterator<Item = (K, V)>, K: Into<String>, V: Into<String>,
Add headers to the request this is called on. Use this function to add headers to your requests.
sourcepub fn with_header<T: Into<String>, U: Into<String>>(
self,
key: T,
value: U
) -> Request
pub fn with_header<T: Into<String>, U: Into<String>>( self, key: T, value: U ) -> Request
Adds a header to the request this is called on. Use this function to add headers to your requests.
sourcepub fn with_param<T: Into<String>, U: Into<String>>(
self,
key: T,
value: U
) -> Request
pub fn with_param<T: Into<String>, U: Into<String>>( self, key: T, value: U ) -> Request
Adds given key and value as query parameter to request url (resource).
If urlencoding
is not enabled, it is the responsibility
of the user to ensure there are no illegal characters in the
key or value.
If urlencoding
is enabled, the key and value are both encoded.
sourcepub fn with_json<T: Serialize>(self, body: &T) -> Result<Request, Error>
pub fn with_json<T: Serialize>(self, body: &T) -> Result<Request, Error>
Converts given argument to JSON and sets it as body.
Errors
Returns
SerdeJsonError
if
Serde runs into a problem when converting body
into a
string.
sourcepub fn with_timeout(self, timeout: u64) -> Request
pub fn with_timeout(self, timeout: u64) -> Request
Sets the request timeout in seconds.
sourcepub fn with_max_redirects(self, max_redirects: usize) -> Request
pub fn with_max_redirects(self, max_redirects: usize) -> Request
Sets the max redirects we follow until giving up. 100 by default.
Warning: setting this to a very high number, such as 1000, may cause a stack overflow if that many redirects are followed. If you have a use for so many redirects that the stack overflow becomes a problem, please open an issue.
sourcepub fn with_max_headers_size<S: Into<Option<usize>>>(
self,
max_headers_size: S
) -> Request
pub fn with_max_headers_size<S: Into<Option<usize>>>( self, max_headers_size: S ) -> Request
Sets the maximum size of all the headers this request will accept.
If this limit is passed, the request will close the connection and return an Error::HeadersOverflow error.
The maximum length is counted in bytes, including line-endings and other whitespace. Both normal and trailing headers count towards this cap.
None
disables the cap, and may cause the program to use any
amount of memory if the server responds with a lot of headers
(or an infinite amount). In minreq versions 2.x.x, the default
is None, so setting this manually is recommended when talking
to untrusted servers.
sourcepub fn with_max_status_line_length<S: Into<Option<usize>>>(
self,
max_status_line_len: S
) -> Request
pub fn with_max_status_line_length<S: Into<Option<usize>>>( self, max_status_line_len: S ) -> Request
Sets the maximum length of the status line this request will accept.
If this limit is passed, the request will close the connection and return an Error::StatusLineOverflow error.
The maximum length is counted in bytes, including the
line-ending \r\n
.
None
disables the cap, and may cause the program to use any
amount of memory if the server responds with a long (or
infinite) status line. In minreq versions 2.x.x, the default
is None, so setting this manually is recommended when talking
to untrusted servers.
sourcepub fn send(self) -> Result<Response, Error>
pub fn send(self) -> Result<Response, Error>
Sends this request to the host.
Errors
Returns Err
if we run into an error while sending the
request, or receiving/parsing the response. The specific error
is described in the Err
, and it can be any
minreq::Error
except
SerdeJsonError
and
InvalidUtf8InBody
.