pub struct Session { /* private fields */ }
Expand description
A shared cache for HTTP requests to pool data such as TCP connections between.
All HTTP requests in this crate are performed through a Session
type. A
Session
can be cloned to acquire multiple references to the same session.
Sessions are created through the Session::new
method, which returns a
future that will resolve to a session once it’s been initialized.
Implementations§
Source§impl Session
impl Session
Sourcepub fn new(handle: Handle) -> Session
pub fn new(handle: Handle) -> Session
Creates a new HTTP session object which will be bound to the given event loop.
When using libcurl it will provide us with file descriptors to listen for events on, so we’ll need raw access to an actual event loop in order to hook up all the pieces together. The event loop will also be the I/O home for this HTTP session. All HTTP I/O will occur on the event loop thread.
This function returns a future which will resolve to a Session
once
it’s been initialized.
Sourcepub fn perform(&self, handle: Easy) -> Perform
pub fn perform(&self, handle: Easy) -> Perform
Execute and HTTP request asynchronously, returning a future representing the request’s completion.
This method will consume the provided Easy
handle, which should be
configured appropriately to send off an HTTP request. The returned
future will resolve back to the handle once the request is performed,
along with any error that happened along the way.
The Item
of the returned future is (Easy, Option<Error>)
so you can
always get the Easy
handle back, and the Error
part of the future is
io::Error
which represents errors communicating with the event loop or
otherwise fatal errors for the Easy
provided.
Note that if the Perform
future is dropped it will cancel the
outstanding HTTP request, cleaning up all resources associated with it.