Skip to content

0x676e67/wreq-util

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

169 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wreq-util

A collection of utilities to do common things with wreq.

Crates.io GitHub License Documentation Discord chat

See the crate documentation for more details.

Features

wreq-util offers a set of tower middleware and utilities designed specifically for the wreq HTTP client:

  • Emulation various mainstream browsers (Chrome, Firefox, Safari, Opera, OkHttp) and their versions.
  • Delay/JitterDelay: Add fixed or jittered delays to HTTP request with customizable strategies and predicates.

Example

The following example uses the Tokio runtime with optional features enabled by adding this to your Cargo.toml:

[dependencies]
tokio = { version = "1", features = ["full"] }
wreq = "6.0.0-rc.28"
wreq-util = "3.0.0-rc.10"

And then the code:

use wreq::Client;
use wreq_util::Emulation;

#[tokio::main]
async fn main() -> wreq::Result<()> {
    // Build a client
    let client = Client::builder()
        .emulation(Emulation::Chrome147)
        .build()?;

    // Use the API you're already familiar with
    let resp = client.get("https://www.google.com").send().await?;
    println!("{}", resp.text().await?);
    Ok(())
}

License

Licensed under either of Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0).

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.

FAQ

For all issues and feedback, please head over to the wreq repository.