问题描述

在使用 reqwest 请求时,即使是最简的请求也会出发 cloudflare 的拦截,导致请求失败。例如以下代码:

let res = match self
    .client
    .get("https://api.bgm.tv/v0/subjects/12")
    .send()
    .await
{
    Ok(res) => res,
    Err(e) => {
        return Err(e.to_string());
    }
};

临时解决方法

添加 native-tls-alpn feature

[dependencies]
reqwest = { version = "0.11", features = ["native-tls-alpn"] }

参考链接

Request made with reqwest blocked by Cloudflare’s protection but succeeds with curl