Rust reqwest::multipart::表单不起作用

问题描述 投票:0回答:1

使用 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"
http rust multipartform-data bittorrent reqwest
1个回答
0
投票

发生这种情况是因为

multipart
未启用
default
功能标志。我建议您也查看一下 rust 文档

因此,您需要像这样改变对

reqwest
的依赖

reqwest = { version = "0.11.18", features = ["multipart"] }
© www.soinside.com 2019 - 2024. All rights reserved.