Commit Graph

68 Commits

Author SHA1 Message Date
prfss
c7da30149a Fix cookie header to not include set-cookie attributes (#522) 2019-05-15 13:12:22 -07:00
WindSoilder
e0a52dcf5d Include new cookie header after a redirect (#514)
Closes #510
2019-04-30 15:15:41 -07:00
Sean McArthur
f6ce085457 Propagate async timeout to response body (#503) 2019-04-22 15:24:35 -07:00
Sean McArthur
ce51fe83d6 Add request timeout support to async Client (#501)
Closes #496
2019-04-22 12:43:30 -07:00
Jerome Gravel-Niquet
77434a29aa Fix overwriting of appended request headers (#493)
* don't overwrite appended user headers

* Fixes tests, all header ordering related

* does not need to clone default headers, added a test
2019-04-15 12:33:03 -07:00
Christoph Herzog
9935a8e117 CookieStore cleanup/fixes
* Remove TODO
* Remove Cookie::set_ setters
* Do not expose SameSite enum, provide getters on Cookie instead
* Simplify Response::cookies signature (now ignores errors)
2019-04-09 12:54:10 -07:00
Christoph Herzog
954fdfae30 Implement cookie store support
This commit introduces a cookie store / session support
for both the async and the sync client.

Functionality is based on the cookie crate,
which provides a HTTP cookie abstraction,
and the cookie_store crate which provides a
store that handles cookie storage and url/expiration
based cookie resolution for requests.

Changes:
* adds new private dependencies: time, cookie, cookie_store
* a new cookie module which provides wrapper types around
    the dependency crates
* a Response::cookies() accessor for iterating over response cookies
* a ClientBuilder::cookie_store() method that enables session functionality
* addition of a cookie_store member to the async client
* injecting request cookies and persisting response cookies
* cookie tests

NOTE: this commit DOES NOT expose the CookieStore itself,
limiting available functionality.

This is desirable, but omitted for now due to API considerations that should be fleshed out in the future.
This means users do not have direct access to the cookie session for now.
2019-04-09 12:54:10 -07:00
Diggory Blake
c45ff29bfb Add support for SOCKS5 proxies, and parsing proxy authorizations from URLs 2019-04-08 11:42:18 -07:00
Sean McArthur
5c3494b81d Check redirect locations are valid Uris (#486)
Closes #484
2019-04-01 11:13:01 -07:00
Sean McArthur
7eae51f56e add form-urlencoded unit test 2019-02-13 11:46:12 -08:00
Kevin Wilson
4c21127f15 add async multipart request handling 2019-01-07 10:57:51 -08:00
Sean McArthur
ad854c3ee8 add Proxy::basic_auth support
Closes #322
2019-01-04 14:40:19 -08:00
quininer
37039760f8 Add rustls support (#390) 2018-12-17 11:57:43 -08:00
Sean McArthur
478ef9bf15 add Response::remote_addr() method
The new `remote_addr` method returns an `Option<SocketAddr>`, which is
`Some` if the underlying transport uses socket addresses.

Closes #373
2018-10-26 14:23:33 -07:00
Sean McArthur
acd23d057a fix tests generating an extra blank Txn for each server 2018-10-17 14:17:08 -07:00
Sean McArthur
512b80a3ad ensure async request is canceled if there is a timeout 2018-10-17 13:38:54 -07:00
Sean McArthur
15857a11a4 fix streaming body from wrongly returning 'closed connection' error 2018-09-19 16:38:33 -07:00
Sean McArthur
2698148743 fix improper handling of request body backpressure
Closes #348
2018-09-19 14:20:12 -07:00
Sean McArthur
3fbda4fd49 remove unstable language and feature 2018-08-15 16:08:47 -07:00
kennytm
a52520941f multipart: Force a CRLF at the end of request 2018-07-27 11:40:38 -07:00
Yash Srivastav
c417d6dab8 Upgrade hyper to 0.12
Closes #304
2018-07-05 10:03:31 -07:00
Sean McArthur
7db860759d Revert "Merge pull request #232 from tafia/hyper-proxy"
This reverts commit b09b8620a6, reversing
changes made to abfcd2796e.
2018-02-15 12:13:33 -08:00
messense
0203fad886 Detect encoding in Response::text() (#256)
* Detect encoding and decode text response

Fixes #246

* Try to get encoding from Content-Type header

* Remove uchardet encoding detection for now

* Add non utf-8 test case for Response::text()

* Reduce copies
2018-02-15 11:01:57 -08:00
Sean McArthur
af49be0ce6 update to log 0.4 2018-01-19 17:55:15 -08:00
Johann Tuffe
871b8076e4 add proxy authorization 2017-12-19 15:44:06 +08:00
Johann Tuffe
2f403175dc uses hyper-proxy 0.3.0 2017-12-19 15:23:39 +08:00
Johann Tuffe
07f89984c4 store intercept to set_proxy on requests 2017-12-18 17:53:17 +08:00
knight42
33c7ce4ce2 test: Response::text() 2017-10-27 14:58:16 +08:00
Sean McArthur
e60fd533f6 Merge pull request #218 from knight42/default-headers
Setting default headers
2017-10-26 14:22:29 -07:00
Sean McArthur
5993aa84cc add logs for flaky multipart test 2017-10-26 14:05:33 -07:00
knight42
07d6bca08f fix: tests::support::server
If the length of expected header is accidentally larger than the length
of the actual header, `socket.read()` will keep pulling bytes from the
socket which could no longer produce any, hence the later calls of
`socket.read` will return a `WouldBlock` Error.
2017-10-22 13:27:20 +08:00
knight42
2bd558d8c7 test: add tests for setting default headers 2017-10-22 13:06:05 +08:00
knight42
c3d2a062fc Add test for Response::copy_to 2017-10-18 09:22:09 +08:00
Christopher Vittal
8aaff6c326 Add into_body to async_impl::response::Response
Closes #200
2017-09-20 03:21:24 -04:00
Sean McArthur
390fc34148 wip 2017-09-04 13:11:20 -07:00
Sean McArthur
779f8080ef change Builders to only error at the end
Closes #189
2017-08-31 18:10:45 -07:00
Sean McArthur
fff08ff95c integration test for multipart 2017-08-21 14:19:13 -07:00
Sean McArthur
fe8c7a2d01 Merge pull request #165 from KodrAus/feat/async-decoder
Support Async Gzip Decoding
2017-08-21 10:57:55 -07:00
Ashley Mannix
2cb70c872a make body return borrowed decoder 2017-08-19 18:02:20 +10:00
Sean McArthur
0460d5756c fix flaky redirect test when first read doesn't include full body 2017-08-18 13:59:34 -07:00
Ashley Mannix
e2fa97254e support async gzip decoding 2017-08-18 19:43:06 +10:00
Sean McArthur
df4b6bd8db fix broken test now that hyper does not include content-length when body is empty 2017-07-28 14:17:19 -07:00
Sean McArthur
2d11a4bd71 fix 307/308 redirects with GET requests 2017-07-24 16:11:54 -07:00
Sean McArthur
478309e03f Merge pull request #152 from seanmonstar/proxy
add a `Proxy` type
2017-06-22 11:40:56 -07:00
Tom Prince
855e6615eb Add error_for_status.
This makes it it easy to turn error responses into error
results.
2017-06-22 11:03:39 -07:00
Sean McArthur
6cdaff4b66 add a Proxy type
Proxies can currently be configured to intercept HTTP, HTTPS, and all
requests. HTTPS tunneling is supported.

Closes #30
2017-06-22 09:49:00 -07:00
Sean McArthur
665b4fe718 upgrade hyper to v0.11 2017-06-21 09:47:21 -07:00
James Kominick
df276b2913 fix client tests
- `Response` `status` now returns StatusCode by value
2017-06-08 22:24:50 -04:00
Sean McArthur
1eb05958e8 fix test that referenced HttpVersion 2017-06-01 17:12:39 -07:00
Sean McArthur
e176dcebca convert RequestBuilder to a &mut Self builder
Closes #108
2017-06-01 16:23:16 -07:00