pub struct CookieMiddleware { /* private fields */ }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 urlImplementations§
Source§impl CookieMiddleware
impl CookieMiddleware
Sourcepub fn new() -> Self
pub fn new() -> Self
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 urlBuilds 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));Sourcepub async fn from_path(path: impl Into<PathBuf>) -> Result<Self>
pub async fn from_path(path: impl Into<PathBuf>) -> Result<Self>
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?);Sourcepub async fn from_file(file: impl Into<File>) -> Result<Self>
pub async fn from_file(file: impl Into<File>) -> Result<Self>
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§
Source§impl Clone for CookieMiddleware
impl Clone for CookieMiddleware
Source§fn clone(&self) -> CookieMiddleware
fn clone(&self) -> CookieMiddleware
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more