Struct surf::Config [−][src]
#[non_exhaustive]pub struct Config {
pub base_url: Option<Url>,
pub headers: HashMap<HeaderName, HeaderValues>,
pub http_config: HttpConfig,
pub http_client: Option<Arc<dyn HttpClient>>,
}
Expand description
Configuration for surf::Client
s and their underlying HTTP clients.
use std::convert::TryInto;
use surf::{Client, Config, Url};
let client: Client = Config::new()
.set_base_url(Url::parse("https://example.org")?)
.try_into()?;
let mut response = client.get("/").await?;
println!("{}", response.body_string().await?);
Fields (Non-exhaustive)
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.base_url: Option<Url>
The base URL for a client. All request URLs will be relative to this URL.
Note: a trailing slash is significant. Without it, the last path component is considered to be a “file” name to be removed to get at the “directory” that is used as the base.
headers: HashMap<HeaderName, HeaderValues>
Headers to be applied to every request made by this client.
http_config: HttpConfig
Underlying HTTP client config.
http_client: Option<Arc<dyn HttpClient>>
Optional custom http client.
Implementations
pub fn add_header(
self,
name: impl Into<HeaderName>,
values: impl ToHeaderValues
) -> Result<Self>
pub fn add_header(
self,
name: impl Into<HeaderName>,
values: impl ToHeaderValues
) -> Result<Self>
Adds a header to be added to every request by this client.
Default: No extra headers.
use std::convert::TryInto;
use surf::{Client, Config};
use surf::http::auth::BasicAuth;
let auth = BasicAuth::new("Username", "Password");
let client: Client = Config::new()
.add_header(auth.name(), auth.value())?
.try_into()?;
Sets the base URL for this client. All request URLs will be relative to this URL.
Note: a trailing slash is significant. Without it, the last path component is considered to be a “file” name to be removed to get at the “directory” that is used as the base.
Default: None
(internally).
use std::convert::TryInto;
use surf::{Client, Config, Url};
let client: Client = Config::new()
.set_base_url(Url::parse("https://example.org")?)
.try_into()?;
Set HTTP/1.1 keep-alive
(connection pooling).
Default: true
.
Note: Does nothing on wasm-client
(or native-client
on wasm32
).
Set TCP NO_DELAY
.
Default: false
.
Note: Does nothing on wasm-client
(or native-client
on wasm32
).
Set connection timeout duration.
Passing None
will remove the timeout.
Default: Some(Duration::from_secs(60))
.
use std::convert::TryInto;
use std::time::Duration;
use surf::{Client, Config};
let client: Client = Config::new()
.set_timeout(Some(Duration::from_secs(5)))
.try_into()?;
Set the maximum number of simultaneous connections that this client is allowed to keep open to individual hosts at one time.
Default: 50
.
This number is based on a few random benchmarks and see whatever gave decent perf vs resource use in Orogene.
Note: The behavior of this is different depending on the backend in use.
h1-client
:0
is disallowed and asserts as otherwise it would cause a semaphore deadlock.curl-client
:0
allows for limitless connections per host.hyper-client
: No effect. Hyper does not support such an option.wasm-client
: No effect. Web browsers do not support such an option.
Override the http client entirely.
When using this, any underlying http_client::Config
http configuration will be ignored.
use std::convert::TryInto;
use surf::{Client, Config};
// Connect directly to a Tide server, e.g. for testing.
let server = tide::new();
let client: Client = Config::new()
.set_http_client(server)
.try_into()?;
Trait Implementations
Performs the conversion.
Auto Trait Implementations
impl !RefUnwindSafe for Config
impl !UnwindSafe for Config
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more