问题标签 [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.
rust - 如何在异步模式下使用 reqwest 库处理 RUST 中的错误?
使用 rust 1.49 和 reqwest 0.11.0,我想检索一个 URL,并对可能的错误做出反应(错误的 URL,没有网络,...)。
我的(简化的)基本代码是(这是有效的):
如何处理可能出现的错误?
如果我尝试添加这样的东西
然后它不起作用(我的代码没有执行,就像 reqwest 正在引发恐慌?)。
asynchronous - 如何修复 reqwest json 解码错误?
当我运行以下代码时:
我收到一个错误:Err(错误解码响应正文:第 1 行第 235 列的预期“,”或“}”)。对于另一个 API,这个具有类似结构的代码可以工作。你如何用 reqwest 解决这个问题?
rust - 如何使用依赖的依赖类型?
我想使用由板条箱 A 中的函数返回的类型,该类型实际上是在板条箱 B 中定义的,但板条箱 A 不会重新导出它。
虽然我可以在我的 中明确添加板条箱 B Cargo.toml
,但我不确定如何使其版本与板条箱 A 中使用的版本保持同步。
更具体地说,类型是url::ParseError
,板条箱 A 是reqwest
,板条箱 B 是url
。
rust - 如何在 Rust 期货 reqwest 中接受无效或自签名 SSL 证书?
我的代码如下所示:
但是,这里的问题是它会为带有无效或自签名 SSL 证书的 URL 提供错误。因此,我尝试执行以下操作:
当我尝试使用 Cargo 构建它时,它显示“ error[E0277]: `RequestBuilder` is not a future ”。
那么,如何让我的代码接受无效证书?
multithreading - 为什么通过 std::thread_local 使用时 reqwest::blocking::Client 在我的程序结束时出现恐慌
我在一个库中遇到了与此类似的东西,它似乎导致 Rust 在我的程序结束时出现恐慌。我删除了大部分不相关的代码,这似乎是重现它所需的最小示例。
这段代码似乎非常接近记录的使用std::thread_local
and with
。这里是否发生了某种reqwest::blocking::Client
无法正确支持的破坏?还是在退出之前我应该做一些清理工作?
这是我得到的错误:
如果我避免使用thread_local
并只初始化一个常规局部变量,它可以正常工作:
我在 Windows 10 上运行rustc 1.49.0 (e1884a8e3 2020-12-29)
我的cargo.toml
有reqwest = { version = "0.10", features = ["blocking"] }
如果我使用完整的回溯运行,我会得到以下输出
看起来它确实与某种析构函数有关,我reqwest::blocking::client::{{impl}}::drop
在完整的堆栈跟踪中看到,但我对 Rust 的了解还不够,无法形成一个更完整的关于这里发生的事情的理论。
rust - 在 Rust 中检测 ConnectionReset,而不是让线程恐慌
所以我在 Rust 中有一个多线程程序,它将获取请求发送到我的网站,我想知道如何检测 ConnectionReset。我要做的是,在请求之后,检查是否有 ConnectionReset,如果有,请等待一分钟,这样线程就不会恐慌
我现在使用的代码
执行完之后,我想检查是否有 ConnectionReset,然后 println(“连接错误”),而不是让线程恐慌。
我想检测的错误
我还阅读了一些关于 std::panic::catch_unwind 的内容,但我不确定这是否是正确的方法。
api - Reqwest 请求没有得到我的 reqwest::Client 的默认标头
我正在尝试编写一个与 Todoist 的 REST API 通信的库。这个想法是库公开了一个 TodoistAPI 结构,其中包含一个 reqwest::Client 和一个 base_url。有一个new()
函数可以返回一个实例化的 TodoistAPI 结构,客户端的默认标头中有一个不记名令牌(由使用我的库的程序提供)。
但是,我遇到了一个问题,当实际使用客户端发出 API 请求时,根本没有设置默认标头。
TodoistAPI
结构、方法new
和get_projects
方法。
一个小的 CLI 程序,它从环境变量中获取令牌并调用该get_projects
方法。
这些println!
语句导致以下输出(带有一些明显经过编辑的私人信息)。
我真的被难住了。我正在阅读的所有内容都表明我做得对,但默认标头绝对不会添加到从客户端生成的请求中。
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 请求?