Struct surf_cookie_middleware::CookieMiddleware [−][src]
pub struct CookieMiddleware { /* fields omitted */ }
Expand description
A middleware for sending received cookies in surf
File system persistence
This middleware can optionally be constructed with a file or path to enable writing “persistent cookies” to disk after every received response.
Cloning semantics
All clones of this middleware will refer to the same data and fd (if persistence is enabled).
Usage example
use surf::Client;
use surf_cookie_middleware::CookieMiddleware;
let client = Client::new().with(CookieMiddleware::new());
// client.get(...).await?;
// client.get(...).await?; <- this request will send any appropriate
// cookies received from the first request,
// based on request url
Implementations
Builds a new CookieMiddleware
Example
use surf_cookie_middleware::CookieMiddleware;
let client = surf::Client::new().with(CookieMiddleware::new());
// client.get(...).await?;
// client.get(...).await?; <- this request will send any appropriate
// cookies received from the first request,
// based on request url
Builds a CookieMiddleware with an existing cookie_store::CookieStore
Example
use surf_cookie_middleware::{CookieStore, CookieMiddleware};
let cookie_store = CookieStore::default();
let client = surf::Client::new()
.with(CookieMiddleware::with_cookie_store(cookie_store));
Builds a CookieMiddleware from a path to a filesystem cookie jar. These jars are stored in ndjson format. If the file does not exist, it will be created. If the file does exist, the cookie jar will be initialized with those cookies.
Currently this only persists “persistent cookies” – cookies with an expiry. “Session cookies” (without an expiry) are not persisted to disk, nor are expired cookies.
Example
use surf_cookie_middleware::{CookieStore, CookieMiddleware};
let cookie_store = CookieStore::default();
let client = surf::Client::new()
.with(CookieMiddleware::from_path("./cookies.ndjson").await?);
Builds a CookieMiddleware from a File (either
async_std::fs::File
or std::fs::File
) that represents
a filesystem cookie jar. These jars are stored in
ndjson format. The cookie jar will be
initialized with any cookies contained in this file, and
persisted to the file after every request.
Currently this only persists “persistent cookies” – cookies with an expiry. “Session cookies” (without an expiry) are not persisted to disk, nor are expired cookies.
Example
use surf::Client;
use surf_cookie_middleware::{CookieStore, CookieMiddleware};
let cookie_store = CookieStore::default();
let file = std::fs::File::create("./cookies.ndjson")?;
let client = Client::new()
.with(CookieMiddleware::from_file(file).await?);
Trait Implementations
Returns the “default value” for a type. Read more
Asynchronously handle the request, and return a response.
Auto Trait Implementations
impl !RefUnwindSafe for CookieMiddleware
impl Send for CookieMiddleware
impl Sync for CookieMiddleware
impl Unpin for CookieMiddleware
impl !UnwindSafe for CookieMiddleware
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more