Commit Graph

192 Commits

Author SHA1 Message Date
Sean McArthur
46efd05810 Change default tcp_keepalive value to be disabled (#1113) 2020-12-14 13:42:35 -08:00
Martin André
541d0c2aba Add https_only() for ClientBuilder (#1102)
Closes #980
2020-12-09 10:40:46 -08:00
Corey Farwell
474d9eff9b Document how a RequestBuilder gets constructed (#1097) 2020-12-09 07:17:37 -08:00
Taylor Thomas
2ca0e26cfa feat(multipart): Adds support for manually setting size
I also added a simple sanity test to make sure it doesn't override
a `Body` with an actual size. I also double checked that this works
with a project where we are using streams.

Closes #1090
2020-11-23 11:10:26 -08:00
est31
23aaa0b60e Add a rustls-tls-native-roots feature
Adds an optional cargo feature to load certificates
from the OS native certificate store.
2020-11-19 13:13:36 -08:00
est31
3ea9f92f24 Add rustls-tls-manual-roots feature to allow callers to specify roots
Now, callers have more control over the set of roots.

Note that, due to cargo unification, other dependencies in the
dependency tree might enable rustls-tls-webpki-roots
or rustls-tls.
This will affect connections initiated by code that explicitly
enabled rustls-tls-manual-roots.

So for now, the choice is done once per entire cargo
dependency graph. If people want more precise control
over things, they can add methods that allow controlling
this on a per-connection level. Even if such methods
are available, the *-manual-roots feature will still be
helpful with eliminating the webpki-roots dependency
for those cargo graphs where there is no unification.
2020-11-19 13:13:36 -08:00
Taiki Endo
2dec3b725f Remove pin-related unsafe code 2020-11-13 15:12:06 -08:00
Ngo Iok Ui (Wu Yu Wei)
00fb43b650 Add tcp_keepalive option for ClientBuilder (#1070) 2020-10-29 08:23:01 -07:00
Patrick Lühne
6705b90a15 Fix typo in documentation (#1056)
This fixes a typo with multiple occurrences in the documentation and
rewraps the documentation comments at 80 characters.
2020-10-12 18:04:33 -07:00
Snarpix
dbd887c262 Expose http1_writev config option to user (#1040) 2020-09-18 11:29:07 -07:00
Zac Pullar-Strecker
db24d54097 Add must_use to ClientBuilder & RequestBuilder (#1011) 2020-08-21 08:58:53 -07:00
Jason van den Hurk
83fa93ccaf Make headers method on WASM client for compatibility with async_impl (#991)
The replace_headers method had to be moved since the async_impl module
is not compiled while compiling to wasm. This caused the replace_headers
method to be unavailable. fast_random had to be excluded from the wasm
build to prevent dead code warnings in the wasm target.
2020-08-06 15:07:43 -07:00
Takayuki Maeda
1e6957a4ac Fix clippy warnings (#981)
* refactor: fix clippy warnings

* refactor: fix redundant_closure

* refactor: fix collapsible if

* refactor: remove unnecessary_unwrap
2020-07-27 09:02:47 -07:00
Fabian Franz
7fd6b44cde Issue #956: Take the cookie store write lock only when necessary (#960) 2020-06-26 12:27:23 -07:00
Jacob Hoffman-Andrews
eef504631b Reject non-http, non-https URLs. (#921)
Normally hyper is in charge of rejecting non-http URLs, but because
reqwest supports both http and https URLs, it calls enforce_http(false),
disabling hyper's checks.

This adds back a check in reqwest itself, plus a test.

There may still need to be an additional check in connect.rs.
2020-05-29 10:29:40 -07:00
Damien Cuenot
d879d6f6c2 Define authorization headers as sensitive header (#916) 2020-05-22 14:39:55 -07:00
Patrick Lühne
ecf1df572c Rename option to “pool_max_idle_per_host” (#917)
reqwest exposes the “pool_max_idle_per_host” option of hyper’s client
builder. This option used to be called “max_idle_per_host” in the hyper
crate, but it has recently been renamed [1].

This patch renames the reqwest representation of this option to make it
consistent with its name in the hyper crate again.

[1] https://github.com/hyperium/hyper/pull/2142
2020-05-22 08:05:44 -07:00
Patrick Lühne
b5706f2d89 Make pool idle timeout configurable (#866)
hyper’s ClientBuilder has an option to define the idle timeout of the
connection pool. As it’s quite useful to be able to modify this value,
this patch extends reqwest’s ClientBuilder to expose that option as
well. The default value of 90 seconds is taken from hyper.
2020-05-22 07:37:02 -07:00
x1957
0595c04d10 impl TryFrom http::Request (#887) 2020-05-21 09:23:14 -07:00
Lucas
c81eb4ec41 document internal Arc of reqwest::Client (#876) 2020-04-10 11:34:21 -07:00
Sean McArthur
1f834714f0 Enable TCP nodelay by default (#860) 2020-03-25 12:38:29 -07:00
Sean McArthur
603d498d2c De-duplicate Body::poll_next and poll_data 2020-03-03 16:34:36 -08:00
Sean McArthur
a06e03edf4 Refactor gzip and brotli bools into an Accepts struct 2020-03-03 16:31:19 -08:00
Sean McArthur
2f875255e1 Fix deprecated hyper client builder methods 2020-03-03 15:47:49 -08:00
Yuhao Fang
f267e1435d Adds From trait for http::Request 2020-03-03 11:24:12 -08:00
daxpedda
a5f3de0740 Remove unnecessary Result returns. 2020-03-03 10:54:49 -08:00
daxpedda
c1c2b9dd7b Implement ability to disable trust-dns in ClientBuilder. 2020-03-03 10:54:49 -08:00
Sean McArthur
ae81a30cf7 Document serde dependency in JSON examples
Closes #818
2020-02-27 12:52:57 -08:00
Sean McArthur
9a66c5748b Document advanced (brittle) nature of use_preconfigured_tls 2020-02-27 12:47:38 -08:00
Sean McArthur
c916dc03cc Improve performance of Response::bytes() (#827) 2020-02-27 12:44:04 -08:00
Sean McArthur
2e06108f70 Require the native-tls feature to supply a preconfigured tls (#814) 2020-02-21 12:41:13 -08:00
Nick Lanham
9ab8ab945c add ability to create a client with own tls connector (#809) 2020-02-21 11:39:31 -08:00
EnokMan
f831d62da0 Brotli support (#791) 2020-02-19 12:49:11 -08:00
Sean McArthur
14908ad3f0 Improve debug logging (#781) 2020-01-13 12:24:38 -08:00
Sean McArthur
50c33a932e Add connection_verbose setting to log IO events (#774) 2020-01-09 13:42:01 -08:00
rhysd
6004623784 Add RequestBuilder::fetch_mode_no_cors() 2020-01-08 11:47:47 -08:00
kodieg
b159963f6c Add request timeout (#761)
Closes #754
2020-01-03 11:25:04 -08:00
Sean McArthur
09e7fe62e3 Don't set User-Agent header by default (#751) 2019-12-23 12:48:11 -08:00
Sean McArthur
0ab5df39cc Add Response::bytes_stream() (#750)
This converts the `Response` into a `Stream` of `Bytes`.

Closes #734
2019-12-23 11:38:39 -08:00
Sean McArthur
24abf2fcbd Separate default-tls and native-tls features (#749)
To allow for the default-tls to change to a different backend by
default, this adds a new `native-tls` optional feature. Any TLS feature
that was only available using native-tls now requires the `native-tls`
feature to be enabled.
2019-12-20 13:22:56 -08:00
Sean McArthur
ce43f80d8b Refactor Redirect API (#741)
Changed the redirect types to be from the `redirect` module:

- `reqwest::RedirectPolicy` is now `reqwest::redirect::Policy`
- `reqwest::RedirectAttempt` is now `reqwest::redirect::Attempt`
- `reqwest::RedirectAction` is now `reqwest::redirect::Action`

Changed behavior of default policy to no longer check for redirect loops
(loops should still be caught eventually by the maximum limit).

Removed the `too_many_redirects` and `loop_detected` methods from
`Action`.

Added `error` to `Action` that can be passed any error type.

Closes #717
2019-12-16 15:57:09 -08:00
Sean McArthur
be52c4d558 support url with authority (#736) 2019-12-11 13:42:45 -08:00
Sean McArthur
7631c0390e Rename 'unstable-stream' feature to 'stream' (#733) 2019-12-10 16:55:53 -08:00
Gleb Pomykalov
0f32c4a01a Update to hyper 0.13 2019-12-10 16:24:05 -08:00
Rodolfo P A
80ba8cc150 Implement Default for Client, ClientBuilder and Form (#712) 2019-11-21 11:52:17 -08:00
Nathan West
3a24cc1d4b Reimplemented RequestBuilder::basic_auth to use Base64Encoder (#713) 2019-11-19 10:45:14 -08:00
Lucas
3b23593262 Add as_bytes method to Body (#708) 2019-11-11 13:12:22 -08:00
tobdob
3a50ed11f8 Implement try_clone for async requests (#698)
Fixes #533
2019-11-04 18:14:40 -08:00
Artem Vorotnikov
cfc312f8dd Remove remnants of old typed headers (#690) 2019-10-23 12:18:06 -07:00
Kyle Huey
6433db78b1 Add http2 window setters to ClientBuilder (#659) 2019-10-17 15:01:37 -07:00