Files
google-apis-rs/hyper/client/index.html
2024-03-05 21:06:01 +01:00

40 lines
8.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="HTTP Client"><title>hyper::client - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-ac92e1bbe349e143.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="hyper" data-themes="" data-resource-suffix="" data-rustdoc-version="1.76.0 (07dca489a 2024-02-04)" data-channel="1.76.0" data-search-js="search-2b6ce74ff89ae146.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-f2adc0d6ca4d09fb.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-305769736d49e732.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-feafe1bb7466e4bd.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../hyper/index.html">hyper</a><span class="version">0.14.27</span></h2></div><h2 class="location"><a href="#">Module client</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#reexports">Re-exports</a></li><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li></ul></section><h2><a href="../index.html">In crate hyper</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../hyper/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">hyper</a>::<wbr><a class="mod" href="#">client</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../src/hyper/client/mod.rs.html#1-68">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>HTTP Client</p>
<p>There are two levels of APIs provided for construct HTTP clients:</p>
<ul>
<li>The higher-level <a href="struct.Client.html" title="struct hyper::client::Client"><code>Client</code></a> type.</li>
<li>The lower-level <a href="conn/index.html" title="mod hyper::client::conn"><code>conn</code></a> module.</li>
</ul>
<h2 id="client"><a href="#client">Client</a></h2>
<p>The <a href="struct.Client.html" title="struct hyper::client::Client"><code>Client</code></a> is the main way to send HTTP requests to a server.
The default <code>Client</code> provides these things on top of the lower-level API:</p>
<ul>
<li>A default <strong>connector</strong>, able to resolve hostnames and connect to
destinations over plain-text TCP.</li>
<li>A <strong>pool</strong> of existing connections, allowing better performance when
making multiple requests to the same hostname.</li>
<li>Automatic setting of the <code>Host</code> header, based on the request <code>Uri</code>.</li>
<li>Automatic request <strong>retries</strong> when a pooled connection is closed by the
server before any bytes have been written.</li>
</ul>
<p>Many of these features can configured, by making use of
<a href="struct.Client.html#method.builder" title="associated function hyper::client::Client::builder"><code>Client::builder</code></a>.</p>
<h3 id="example"><a href="#example">Example</a></h3>
<p>For a small example program simply fetching a URL, take a look at the
<a href="https://github.com/hyperium/hyper/blob/master/examples/client.rs">full client example</a>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>hyper::{body::HttpBody <span class="kw">as _</span>, Client, Uri};
<span class="kw">let </span>client = Client::new();
<span class="comment">// Make a GET /ip to 'http://httpbin.org'
</span><span class="kw">let </span>res = client.get(Uri::from_static(<span class="string">"http://httpbin.org/ip"</span>)).<span class="kw">await</span><span class="question-mark">?</span>;
<span class="comment">// And then, if the request gets a response...
</span><span class="macro">println!</span>(<span class="string">"status: {}"</span>, res.status());
<span class="comment">// Concatenate the body stream into a single buffer...
</span><span class="kw">let </span>buf = hyper::body::to_bytes(res).<span class="kw">await</span><span class="question-mark">?</span>;
<span class="macro">println!</span>(<span class="string">"body: {:?}"</span>, buf);</code></pre></div>
</div></details><h2 id="reexports" class="section-header"><a href="#reexports">Re-exports</a></h2><ul class="item-table"><li><div class="item-name" id="reexport.HttpConnector"><code>pub use self::connect::<a class="struct" href="connect/struct.HttpConnector.html" title="struct hyper::client::connect::HttpConnector">HttpConnector</a>;</code></div></li></ul><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="conn/index.html" title="mod hyper::client::conn">conn</a></div><div class="desc docblock-short">Lower-level client connection API.</div></li><li><div class="item-name"><a class="mod" href="connect/index.html" title="mod hyper::client::connect">connect</a></div><div class="desc docblock-short">Connectors used by the <code>Client</code>.</div></li><li><div class="item-name"><a class="mod" href="service/index.html" title="mod hyper::client::service">service</a></div><div class="desc docblock-short">Utilities used to interact with the Tower ecosystem.</div></li></ul><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.Builder.html" title="struct hyper::client::Builder">Builder</a></div><div class="desc docblock-short">A builder to configure a new <a href="struct.Client.html" title="struct hyper::client::Client"><code>Client</code></a>.</div></li><li><div class="item-name"><a class="struct" href="struct.Client.html" title="struct hyper::client::Client">Client</a></div><div class="desc docblock-short">A Client to make outgoing HTTP requests.</div></li><li><div class="item-name"><a class="struct" href="struct.ResponseFuture.html" title="struct hyper::client::ResponseFuture">ResponseFuture</a></div><div class="desc docblock-short">A <code>Future</code> that will resolve to an HTTP Response.</div></li></ul></section></div></main></body></html>