surf
surf copied to clipboard
Fast and friendly HTTP client framework for async Rust
A helper method for convenience, just like `body_json`.
Hello! This might be outside of the scope of this project, and would possibly require significant effort but - is there currently a way to measure latency/time-to-first-byte using Surf? Ideally...
Currently there is no elegant way to seek through data stream, except using range headers manually. So I purpose adding `AsyncSeek`, that would provide seek method on body reader. The...
This is an unfriendly choice for errors returned by a library because it makes them not work with `?`. ```rust async fn repro() -> Result { let _ = surf::get("https://www.rust-lang.org").await?;...
Taken from https://github.com/http-rs/surf/pull/252#issuecomment-707942927 `base_url` acts in unexpected ways when a trailing slash is missing. See that PR for more details.
It seems ti be a little inconvenient to net set the content-length automatically
On some websites, e.g. http://bungalowspecials.nl, surf fails with the following error: > Head byte length should be less than 8kb Firefox, curl and ureq (a blocking Rust client) work fine....
On some websites, e.g. http://thomsonreuters.co.uk, surf fails with the following error: > Unsupported HTTP version Firefox, curl and ureq (a blocking Rust client) work fine. 11820 websites out of the...
Some urls will return a content-length during head requests. Surf incorrectly assumes that this means there is a body present and will error: ``` thread 'main' panicked at 'Should Succeed!:...
@ericsampson mentioned to me that a lot of http clients turn this on by default. Some ecosystem stats: - [Node.js does this by default on sockets](https://nodejs.org/dist/latest-v16.x/docs/api/net.html#net_socket_setnodelay_nodelay) - [Reqwest does this...