[−][src]Module hyper::client
HTTP Client
There are two levels of APIs provided for construct HTTP clients:
Client
The Client
is the main way to send HTTP requests to a server.
The default Client
provides these things on top of the lower-level API:
- A default connector, able to resolve hostnames and connect to destinations over plain-text TCP.
- A pool of existing connections, allowing better performance when making multiple requests to the same hostname.
- Automatic setting of the
Host
header, based on the requestUri
. - Automatic request retries when a pooled connection is closed by the server before any bytes have been written.
Many of these features can configured, by making use of
Client::builder
.
Example
For a small example program simply fetching a URL, take a look at the full client example.
use hyper::{Client, Uri}; let client = Client::new(); // Make a GET /ip to 'http://httpbin.org' let res = client.get(Uri::from_static("http://httpbin.org/ip")).await?; // And then, if the request gets a response... println!("status: {}", res.status()); // Concatenate the body stream into a single buffer... let mut body = res.into_body(); let mut bytes = Vec::new(); while let Some(next) = body.next().await { let chunk = next?; bytes.extend(chunk); } // And then, if reading the full body succeeds... // The body is just bytes, but let's print a string... let s = std::str::from_utf8(&bytes) .expect("httpbin sends utf-8 JSON"); println!("body: {}", s);
Modules
conn | Lower-level client connection API. |
connect | The |
service | Utilities used to interact with the Tower ecosystem. |
Structs
Builder | A builder to configure a new |
Client | A Client to make outgoing HTTP requests. |
HttpConnector | A connector for the |
ResponseFuture | A |