Skip to main content

HttpClient

Trait HttpClient 

Source
pub trait HttpClient:
    Clone
    + Send
    + Sync
    + 'static {
    // Required method
    fn get<'life0, 'life1, 'async_trait>(
        &'life0 self,
        uri: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<String, Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;

    // Provided method
    fn get_conditional<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        uri: &'life1 str,
        _etag: Option<&'life2 str>,
    ) -> Pin<Box<dyn Future<Output = Result<ConditionalResponse, Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait { ... }
}
Expand description

Trait for fetching content over HTTP.

Required Methods§

Source

fn get<'life0, 'life1, 'async_trait>( &'life0 self, uri: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<String, Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

§Errors

Returns an error if the HTTP request fails or the response cannot be read.

Provided Methods§

Source

fn get_conditional<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, uri: &'life1 str, _etag: Option<&'life2 str>, ) -> Pin<Box<dyn Future<Output = Result<ConditionalResponse, Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Fetch with conditional request support.

If etag is Some, sends an If-None-Match header. Returns body: None on 304 Not Modified.

The default implementation ignores the ETag and delegates to get.

§Errors

Returns an error if the HTTP request fails or the response cannot be read.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§