Struct Client

Source
pub struct Client { /* private fields */ }
Expand description

An asynchronous Client to make Requests with.

The Client has various configuration values to tweak, but the defaults are set to what is usually the most commonly desired value. To configure a Client, use Client::builder().

The Client holds a connection pool internally, so it is advised that you create one and reuse it.

You do not have to wrap the Client in an Rc or Arc to reuse it, because it already uses an Arc internally.

Implementations§

Source§

impl Client

Source

pub fn new() -> Client

Constructs a new Client.

§Panics

This method panics if a TLS backend cannot be initialized, or the resolver cannot load the system configuration.

Use Client::builder() if you wish to handle the failure as an Error instead of panicking.

Source

pub fn builder() -> ClientBuilder

Create a ClientBuilder specifically configured for WebSocket connections.

This method configures the ClientBuilder to use HTTP/1.0 only, which is required for certain WebSocket connections.

Source

pub fn get<U: IntoUrl>(&self, url: U) -> RequestBuilder

Convenience method to make a GET request to a URL.

§Errors

This method fails whenever the supplied Url cannot be parsed.

Source

pub fn websocket<U: IntoUrl>(&self, url: U) -> WebSocketRequestBuilder

Upgrades the RequestBuilder to perform a websocket handshake. This returns a wrapped type, so you must do this after you set up your request, and just before you send the request.

Source

pub fn post<U: IntoUrl>(&self, url: U) -> RequestBuilder

Convenience method to make a POST request to a URL.

§Errors

This method fails whenever the supplied Url cannot be parsed.

Source

pub fn put<U: IntoUrl>(&self, url: U) -> RequestBuilder

Convenience method to make a PUT request to a URL.

§Errors

This method fails whenever the supplied Url cannot be parsed.

Source

pub fn patch<U: IntoUrl>(&self, url: U) -> RequestBuilder

Convenience method to make a PATCH request to a URL.

§Errors

This method fails whenever the supplied Url cannot be parsed.

Source

pub fn delete<U: IntoUrl>(&self, url: U) -> RequestBuilder

Convenience method to make a DELETE request to a URL.

§Errors

This method fails whenever the supplied Url cannot be parsed.

Source

pub fn head<U: IntoUrl>(&self, url: U) -> RequestBuilder

Convenience method to make a HEAD request to a URL.

§Errors

This method fails whenever the supplied Url cannot be parsed.

Source

pub fn request<U: IntoUrl>(&self, method: Method, url: U) -> RequestBuilder

Start building a Request with the Method and Url.

Returns a RequestBuilder, which will allow setting headers and the request body before sending.

§Errors

This method fails whenever the supplied Url cannot be parsed.

Source

pub fn execute( &self, request: Request, ) -> impl Future<Output = Result<Response, Error>>

Executes a Request.

A Request can be built manually with Request::new() or obtained from a RequestBuilder with RequestBuilder::build().

You should prefer to use the RequestBuilder and RequestBuilder::send().

§Errors

This method fails if there was an error while sending request, redirect loop was detected or redirect limit was exhausted.

Source§

impl Client

Source

pub fn user_agent(&self) -> Option<HeaderValue>

Retrieves the User-Agent header for this client.

This method returns the User-Agent header value if it is set for this client.

§Returns

An Option<HeaderValue> containing the User-Agent header value if it is set, or None if it is not.

Source

pub fn headers(&self) -> HeaderMap

Retrieves a headers for this client.

This method returns a HeaderMap containing the headers for this client. Note that this operation involves cloning the headers, which can be expensive if the header map is large.

§Returns

A HeaderMap containing the headers for this client.

Source

pub fn get_cookies(&self, url: &Url) -> Option<HeaderValue>

Returns a String of the header-value of all Cookie in a Url.

Source

pub fn set_cookies<C>(&self, url: &Url, cookies: C)
where C: AsRef<[HeaderValue]>,

Injects a ‘Cookie’ into the ‘CookieStore’ for the specified URL.

This method accepts a collection of cookies, which can be either an owned vector (Vec<HeaderValue>) or a reference to a slice (&[HeaderValue]). It will convert the collection into an iterator and pass it to the cookie_store for processing.

§Parameters
  • url: The URL associated with the cookies to be set.
  • cookies: A collection of HeaderValue items, either by reference or owned.

This method ensures that cookies are only set if at least one cookie exists in the collection.

Inserts a cookie into the CookieStore for the specified URL.

§Note

This method requires the cookies feature to be enabled.

Removes a cookie from the CookieStore for the specified URL.

This method deletes a cookie with the given name from the client’s CookieStore for the specified URL. It can be useful in scenarios where you want to remove specific cookies to reset the client’s state or ensure that certain cookies are not sent with subsequent requests.

§Parameters
  • url: The URL associated with the cookie to be removed.
  • name: The name of the cookie to be removed.
§Note

This method requires the cookies feature to be enabled.

Source

pub fn clear_cookies(&self)

Clears all cookies from the CookieStore.

This method removes all cookies stored in the client’s CookieStore. It can be useful in scenarios where you want to reset the client’s state or ensure that no cookies are sent with subsequent requests.

§Note

This method requires the cookies feature to be enabled.

Source

pub fn update(&self) -> ClientUpdate<'_>

Returns a ClientUpdate instance to modify the internal state of the Client.

This method allows you to obtain a ClientUpdate instance, which provides methods to mutate the internal state of the Client. This is useful when you need to modify the client’s configuration or state after it has been created.

§Returns

A ClientUpdate<'_> instance that can be used to modify the internal state of the Client.

§Example
let client = rquest::Client::new();
client.update()
    .headers(|headers| {
        headers.insert("X-Custom-Header", HeaderValue::from_static("value"));
    })
    .apply()
    .unwrap();
Source

pub fn cloned(&self) -> Self

Clones the Client into a new instance.

This method creates a new instance of the Client by cloning its internal state. The cloned client will have the same configuration and state as the original client, but it will be a separate instance that can be used independently. Note that this will still share the connection pool with the original Client.

§Example
let client = rquest::Client::new();
let cloned_client = client.cloned();
// Use the cloned client independently

Trait Implementations§

Source§

impl Clone for Client

Source§

fn clone(&self) -> Client

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Client

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Client

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Service<Request> for &Client

Source§

type Response = Response

Responses given by the service.
Source§

type Error = Error

Errors produced by the service.
Source§

type Future = Pending

The future response value.
Source§

fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>

Returns Poll::Ready(Ok(())) when the service is able to process requests. Read more
Source§

fn call(&mut self, req: Request) -> Self::Future

Process the request and return the response asynchronously. Read more
Source§

impl Service<Request> for Client

Source§

type Response = Response

Responses given by the service.
Source§

type Error = Error

Errors produced by the service.
Source§

type Future = Pending

The future response value.
Source§

fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>

Returns Poll::Ready(Ok(())) when the service is able to process requests. Read more
Source§

fn call(&mut self, req: Request) -> Self::Future

Process the request and return the response asynchronously. Read more

Auto Trait Implementations§

§

impl Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl !UnwindSafe for Client

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, Request> ServiceExt<Request> for T
where T: Service<Request> + ?Sized,

Source§

fn ready(&mut self) -> Ready<'_, Self, Request>
where Self: Sized,

Yields a mutable reference to the service when it is ready to accept a request.
Source§

fn ready_oneshot(self) -> ReadyOneshot<Self, Request>
where Self: Sized,

Yields the service when it is ready to accept a request.
Source§

fn oneshot(self, req: Request) -> Oneshot<Self, Request>
where Self: Sized,

Consume this Service, calling it with the provided request once it is ready.
Source§

fn call_all<S>(self, reqs: S) -> CallAll<Self, S>
where Self: Sized, S: Stream<Item = Request>,

Process all requests from the given Stream, and produce a Stream of their responses. Read more
Source§

fn and_then<F>(self, f: F) -> AndThen<Self, F>
where Self: Sized, F: Clone,

Executes a new future after this service’s future resolves. This does not alter the behaviour of the poll_ready method. Read more
Source§

fn map_response<F, Response>(self, f: F) -> MapResponse<Self, F>
where Self: Sized, F: FnOnce(Self::Response) -> Response + Clone,

Maps this service’s response value to a different value. This does not alter the behaviour of the poll_ready method. Read more
Source§

fn map_err<F, Error>(self, f: F) -> MapErr<Self, F>
where Self: Sized, F: FnOnce(Self::Error) -> Error + Clone,

Maps this service’s error value to a different value. This does not alter the behaviour of the poll_ready method. Read more
Source§

fn map_result<F, Response, Error>(self, f: F) -> MapResult<Self, F>
where Self: Sized, Error: From<Self::Error>, F: FnOnce(Result<Self::Response, Self::Error>) -> Result<Response, Error> + Clone,

Maps this service’s result type (Result<Self::Response, Self::Error>) to a different value, regardless of whether the future succeeds or fails. Read more
Source§

fn map_request<F, NewRequest>(self, f: F) -> MapRequest<Self, F>
where Self: Sized, F: FnMut(NewRequest) -> Request,

Composes a function in front of the service. Read more
Source§

fn then<F, Response, Error, Fut>(self, f: F) -> Then<Self, F>
where Self: Sized, Error: From<Self::Error>, F: FnOnce(Result<Self::Response, Self::Error>) -> Fut + Clone, Fut: Future<Output = Result<Response, Error>>,

Composes an asynchronous function after this service. Read more
Source§

fn map_future<F, Fut, Response, Error>(self, f: F) -> MapFuture<Self, F>
where Self: Sized, F: FnMut(Self::Future) -> Fut, Error: From<Self::Error>, Fut: Future<Output = Result<Response, Error>>,

Composes a function that transforms futures produced by the service. Read more
Source§

fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
where Self: Sized + Send + 'static, Self::Future: Send + 'static,

Convert the service into a Service + Send trait object. Read more
Source§

fn boxed_clone(self) -> BoxCloneService<Request, Self::Response, Self::Error>
where Self: Sized + Clone + Send + 'static, Self::Future: Send + 'static,

Convert the service into a Service + Clone + Send trait object. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,