#reqwest #partial #retries #retry #customizable #stream #timeout

reqwest-partial-retry

reqwest的包装器,允许轻松进行部分重试

2个版本

0.1.1 2023年11月11日
0.1.0 2023年11月6日

#435HTTP客户端

MIT/Apache

26KB
462

reqwest-partial-retry

reqwest的包装器,允许轻松进行部分重试

特性

  • 可定制重试策略
  • 可定制重试策略
  • 可定制流超时
  • 如果可能,重试使用Range头

示例

use futures_util::StreamExt;
use reqwest_partial_retry::ClientExt;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = reqwest::Client::new().resumable();
    let request = client.get("http://httpbin.org/ip").build().unwrap();
    let mut stream = client
        .execute_resumable(request)
        .await?
        .bytes_stream_resumable();

    while let Some(item) = stream.next().await {
        println!("Bytes: {:?}", item?);
    }

    Ok(())
}

感谢


lib.rs:

reqwest的包装器,允许轻松进行部分重试

示例

use futures_util::StreamExt;
use reqwest_partial_retry::ClientExt;

let client = reqwest::Client::new().resumable();
let request = client.get("http://httpbin.org/ip").build().unwrap();
let mut stream = client
    .execute_resumable(request)
    .await?
    .bytes_stream_resumable();

while let Some(item) = stream.next().await {
    println!("Bytes: {:?}", item?);
}

依赖项

~8–21MB
~319K SLoC