[][src]Struct ureq::Agent

pub struct Agent { /* fields omitted */ }

Agents keep state between requests.

By default, no state, such as cookies, is kept between requests. But by creating an agent as entry point for the request, we can keep a state.

let agent = ureq::agent();

let auth = agent
    .post("/login")
    .auth("martin", "rubbermashgum")
    .call(); // blocks. puts auth cookies in agent.

if !auth.ok() {
    println!("Noes!");
}

let secret = agent
    .get("/my-protected-page")
    .call(); // blocks and waits for request.

if !secret.ok() {
    println!("Wot?!");
}

println!("Secret is: {}", secret.into_string().unwrap());

Implementations

impl Agent[src]

pub fn new() -> Agent[src]

Creates a new agent. Typically you'd use ureq::agent() to do this.

let agent = ureq::Agent::new()
    .set("X-My-Header", "Foo") // present on all requests from this agent
    .build();

agent.get("/foo");

pub fn build(&self) -> Self[src]

Create a new agent after treating it as a builder. This actually clones the internal state to a new one and instantiates a new connection pool that is reused between connects.

pub fn set(&mut self, header: &str, value: &str) -> &mut Agent[src]

Set a header field that will be present in all requests using the agent.

let agent = ureq::agent()
    .set("X-API-Key", "foobar")
    .set("Accept", "text/plain")
    .build();

let r = agent
    .get("/my-page")
    .call();

 if r.ok() {
     println!("yay got {}", r.into_string().unwrap());
 } else {
     println!("Oh no error!");
 }

pub fn auth(&mut self, user: &str, pass: &str) -> &mut Agent[src]

Basic auth that will be present in all requests using the agent.

let agent = ureq::agent()
    .auth("martin", "rubbermashgum")
    .build();

let r = agent
    .get("/my_page")
    .call();
println!("{:?}", r);

pub fn auth_kind(&mut self, kind: &str, pass: &str) -> &mut Agent[src]

Auth of other kinds such as Digest, Token etc, that will be present in all requests using the agent.

// sets a header "Authorization: token secret"
let agent = ureq::agent()
    .auth_kind("token", "secret")
    .build();

let r = agent
    .get("/my_page")
    .call();

pub fn request(&self, method: &str, path: &str) -> Request[src]

Request by providing the HTTP verb such as GET, POST...

let agent = ureq::agent();

let r = agent
    .request("GET", "/my_page")
    .call();
println!("{:?}", r);

pub fn set_max_pool_connections(&self, max_connections: usize)[src]

Sets the maximum number of connections allowed in the connection pool. By default, this is set to 100. Setting this to zero would disable connection pooling.

let agent = ureq::agent();
agent.set_max_pool_connections(200);

pub fn set_max_pool_connections_per_host(&self, max_connections: usize)[src]

Sets the maximum number of connections per host to keep in the connection pool. By default, this is set to 1. Setting this to zero would disable connection pooling.

let agent = ureq::agent();
agent.set_max_pool_connections_per_host(10);

pub fn cookie(&self, name: &str) -> Option<Cookie<'static>>[src]

Gets a cookie in this agent by name. Cookies are available either by setting it in the agent, or by making requests that Set-Cookie in the agent.

let agent = ureq::agent();

agent.get("http://www.google.com").call();

assert!(agent.cookie("NID").is_some());

Set a cookie in this agent.

let agent = ureq::agent();

let cookie = ureq::Cookie::new("name", "value");
agent.set_cookie(cookie);

pub fn get(&self, path: &str) -> Request[src]

Make a GET request from this agent.

pub fn head(&self, path: &str) -> Request[src]

Make a HEAD request from this agent.

pub fn post(&self, path: &str) -> Request[src]

Make a POST request from this agent.

pub fn put(&self, path: &str) -> Request[src]

Make a PUT request from this agent.

pub fn delete(&self, path: &str) -> Request[src]

Make a DELETE request from this agent.

pub fn trace(&self, path: &str) -> Request[src]

Make a TRACE request from this agent.

pub fn options(&self, path: &str) -> Request[src]

Make a OPTIONS request from this agent.

pub fn connect(&self, path: &str) -> Request[src]

Make a CONNECT request from this agent.

pub fn patch(&self, path: &str) -> Request[src]

Make a PATCH request from this agent.

Trait Implementations

impl Clone for Agent[src]

impl Debug for Agent[src]

impl Default for Agent[src]

Auto Trait Implementations

impl RefUnwindSafe for Agent

impl Send for Agent

impl Sync for Agent

impl Unpin for Agent

impl UnwindSafe for Agent

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Sealed<T> for T where
    T: ?Sized

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.