使用 Rust 的 reqwest crates 和 tokio 与 QBittorrent Web API 进行交互(异步)。
我根据QBittorrent Web API的文档创建了一个HTTP请求, 该请求在 Postman 和 Python 中有效,但由于某种原因在 Rust 中无效。
以下代码粘贴自Postman“Code Snippet”。
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::builder()
.build()?;
let form = reqwest::multipart::Form::new()
.text("urls", "magnet:?xt=urn:btih:...")
.text("save_path", "C:\\Users\\user\\Downloads");
let request = client.request(reqwest::Method::POST, "http://localhost:2048/api/v2/torrents/add")
.multipart(form);
let response = request.send().await?;
let body = response.text().await?;
println!("{}", body);
Ok(())
}
在 reqwest crate multipart 和 Form 的 docs.rs 上确实存在。 https://docs.rs/reqwest/latest/reqwest/multipart/struct.Form.html
获取这个错误: 解决失败:在
multipart
中找不到reqwest
在multipart
中找不到reqwest
。 (6号线)
顺便说一句:也尝试使用阻止版本,我得到了同样的错误。
这些是相关的依赖项:
[dependencies]
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
reqwest = "0.11.18"
async-trait = "0.1.72"