Module client

Source
Expand description

HTTP Client

§Usage

The Client API is designed for most people to make HTTP requests. It utilizes the lower level Request API.

§GET

let client = Client::new();

let res = client.get("http://example.domain").send().unwrap();
assert_eq!(res.status, hyper_sync::Ok);

The returned value is a Response, which provides easy access to the status, the headers, and the response body via the Read trait.

§POST

let client = Client::new();

let res = client.post("http://example.domain")
    .body("foo=bar")
    .send()
    .unwrap();
assert_eq!(res.status, hyper_sync::Ok);

§Sync

The Client implements Sync, so you can share it among multiple threads and make multiple requests simultaneously.

use std::sync::Arc;
use std::thread;

// Note: an Arc is used here because `thread::spawn` creates threads that
// can outlive the main thread, so we must use reference counting to keep
// the Client alive long enough. Scoped threads could skip the Arc.
let client = Arc::new(Client::new());
let clone1 = client.clone();
let clone2 = client.clone();
thread::spawn(move || {
    clone1.get("http://example.domain").send().unwrap();
});
thread::spawn(move || {
    clone2.post("http://example.domain/post").body("foo=bar").send().unwrap();
});

Re-exports§

pub use self::pool::Pool;
pub use self::request::Request;
pub use self::response::Response;

Modules§

pool
Client Connection Pooling
request
Client Requests
response
Client Responses

Structs§

Client
A Client to use additional features with Requests.
ProxyConfig
Proxy server configuration with a custom connector and TLS wrapper.
RequestBuilder
Options for an individual Request.

Enums§

Body
An enum of possible body types for a Request.
RedirectPolicy
Behavior regarding how to handle redirects within a Client.

Traits§

IntoUrl
A helper trait to convert common objects into a Url.