问题标签 [reqwest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
329 浏览

rust - 如何在异步模式下使用 reqwest 库处理 RUST 中的错误?

使用 rust 1.49 和 reqwest 0.11.0,我想检索一个 URL,并对可能的错误做出反应(错误的 URL,没有网络,...)。

我的(简化的)基本代码是(这是有效的):

如何处理可能出现的错误?

如果我尝试添加这样的东西

然后它不起作用(我的代码没有执行,就像 reqwest 正在引发恐慌?)。

0 投票
1 回答
1043 浏览

asynchronous - 如何修复 reqwest json 解码错误?

当我运行以下代码时:

我收到一个错误:Err(错误解码响应正文:第 1 行第 235 列的预期“,”或“}”)。对于另一个 API,这个具有类似结构的代码可以工作。你如何用 reqwest 解决这个问题?

0 投票
1 回答
1923 浏览

rust - 如何使用 reqwest 发布文件?

reqwest v0.9.18的文档显示了以下发布文件的示例:

reqwest v0.11的最新文档不再包含此示例,并且在调用时尝试构建它失败并出现以下错误body()

发送文件的更新方法是什么?

0 投票
1 回答
91 浏览

rust - 如何使用依赖的依赖类型?

我想使用由板条箱 A 中的函数返回的类型,该类型实际上是在板条箱 B 中定义的,但板条箱 A 不会重新导出它。

虽然我可以在我的 中明确添加板条箱 B Cargo.toml,但我不确定如何使其版本与板条箱 A 中使用的版本保持同步。

更具体地说,类型是url::ParseError,板条箱 A 是reqwest,板条箱 B 是url

0 投票
1 回答
762 浏览

rust - 如何在 Rust 期货 reqwest 中接受无效或自签名 SSL 证书?

我的代码如下所示:

但是,这里的问题是它会为带有无效或自签名 SSL 证书的 URL 提供错误。因此,我尝试执行以下操作:

当我尝试使用 Cargo 构建它时,它显示“ error[E0277]: `RequestBuilder` is not a future ”。

那么,如何让我的代码接受无效证书?

0 投票
0 回答
85 浏览

multithreading - 为什么通过 std::thread_local 使用时 reqwest::blocking::Client 在我的程序结束时出现恐慌

我在一个库中遇到了与此类似的东西,它似乎导致 Rust 在我的程序结束时出现恐慌。我删除了大部分不相关的代码,这似乎是重现它所需的最小示例。

这段代码似乎非常接近记录的使用std::thread_localand with。这里是否发生了某种reqwest::blocking::Client无法正确支持的破坏?还是在退出之前我应该​​做一些清理工作?

这是我得到的错误:

如果我避免使用thread_local并只初始化一个常规局部变量,它可以正常工作:

我在 Windows 10 上运行rustc 1.49.0 (e1884a8e3 2020-12-29)

我的cargo.tomlreqwest = { version = "0.10", features = ["blocking"] }

如果我使用完整的回溯运行,我会得到以下输出

看起来它确实与某种析构函数有关,我reqwest::blocking::client::{{impl}}::drop在完整的堆栈跟踪中看到,但我对 Rust 的了解还不够,无法形成一个更完整的关于这里发生的事情的理论。

0 投票
1 回答
109 浏览

rust - 在 Rust 中检测 ConnectionReset,而不是让线程恐慌

所以我在 Rust 中有一个多线程程序,它将获取请求发送到我的网站,我想知道如何检测 ConnectionReset。我要做的是,在请求之后,检查是否有 ConnectionReset,如果有,请等待一分钟,这样线程就不会恐慌

我现在使用的代码

执行完之后,我想检查是否有 ConnectionReset,然后 println(“连接错误”),而不是让线程恐慌。

我想检测的错误

我还阅读了一些关于 std::panic::catch_unwind 的内容,但我不确定这是否是正确的方法。

0 投票
1 回答
129 浏览

http - 使用 reqwest 发送附件

我正在尝试使用 POST 请求reqwest。我需要在我的请求中发送附件。我正在寻找相当于

在旧版本中(见这里)它很简单

但是对于较新的版本(请参见此处),该功能似乎已被删除。我得到错误:

尽管官方文件声称

基本的方法是使用body()a 的方法RequestBuilder。这使您可以设置正文应该是什么的确切原始字节。它接受各种类型,包括StringVec<u8>File

0 投票
1 回答
423 浏览

api - Reqwest 请求没有得到我的 reqwest::Client 的默认标头

我正在尝试编写一个与 Todoist 的 REST API 通信的库。这个想法是库公开了一个 TodoistAPI 结构,其中包含一个 reqwest::Client 和一个 base_url。有一个new()函数可以返回一个实例化的 TodoistAPI 结构,客户端的默认标头中有一个不记名令牌(由使用我的库的程序提供)。

但是,我遇到了一个问题,当实际使用客户端发出 API 请求时,根本没有设置默认标头。

TodoistAPI结构、方法newget_projects方法。

一个小的 CLI 程序,它从环境变量中获取令牌并调用该get_projects方法。

这些println!语句导致以下输出(带有一些明显经过编辑的私人信息)。

我真的被难住了。我正在阅读的所有内容都表明我做得对,但默认标头绝对不会添加到从客户端生成的请求中。

0 投票
1 回答
1231 浏览

node.js - 如何在 Rust 的 wasm_bindgen 函数中发出 HTTP 请求?

我正在使用 Rust 开发一个 NODE JS 包并wasm-pack进行编译,我需要在我的代码中发出 HTTP 请求。我尝试使用reqwest库,所以在测试中一切正常,但在打包时出现错误。

配置Cargo.toml

我使用以下命令打包项目:

我得到了错误:

我发现它看起来net2不支持wasm-pack,所以也许我不能reqwest在我的情况下使用:wasm-pack build 报告错误:无法编译`net2`

有没有办法可以wasm-pack成功打包同步 HTTP 请求?