如何使用 reqwest 包

news/2024/11/8 2:46:41/

GET 请求

向连接发起一个 GET 请求:https://hacker-news.firebaseio.com/v0/topstories.json,并解析返回的内容。

尝试发起请求

因为是 GET 请求,可以先在浏览器中进行查看,浏览器可以正常显示一个 id 列表,如下所示。我们开始 coding

[37020001,37020421,36992775
]

首先,编辑 Cargo.toml 中 dependencies,指定项目需要的依赖:

[dependencies]
reqwest = "0.11.18"
serde_json = "1.0.33"
futures = "0.3"

我拼凑了下面代码,虽然耗费了很大的气力,但运行不起来,仔细观察运行提示,过程中发生 panic。加上不怎么熟悉 VSC 这个编译器,也不能完全发挥 VSC 的排查能力。

use reqwest::Client;
use serde_json::Value;
use std::sync::Arc;
use futures::executor::block_on;fn main() {let client = Arc::new(reqwest::Client::new());let control = get_story_ids(client.clone());block_on(control); 
}async fn get_story_ids(client: Arc<Client>) {let stories_url = format!("{}","https://hacker-news.firebaseio.com/v0/topstories.json");let body = client.get(&stories_url).send().await.unwrap().text().await.unwrap();let story_ids: Value = serde_json::from_str(&body).unwrap();println!("{:#?}", story_ids);
}

这段代码使用到了 reqwest、Arc、futures、serde_json,暂时不考虑代码使用的合理性。现在首要的工作是:要这段代码正常执行。

在这里插入图片描述

panic 问题处理

设置 RUST_BACKTRACE 环境变量,控制台输出 trace 调用栈信息。虽然调用栈显示出来了,但看不懂也没有用。

RUST_BACKTRACE=1 cargo run 

tokio 1.x 是干什么用的,there is no reactor running 这又是指代什么?


http://www.ppmy.cn/news/1010063.html

相关文章

《向量数据库指南》——GPTCache的多模态应用文本到图像和文本提示

目录 多模态应用 文本到图像:生成图像 文本提示:一只白色暹罗猫 多模态应用 越来越多人已经不满足于仅依赖 GPT-3.5 驱动的 ChatGPT,大家希望通过 GPT-4 搭建自己的多模态应用——与多种数据模态交互,包括文本、视觉图片和音频等。随着 AI 技术的发展,GPTCache 和 M…

基于java汽车销售分析与管理系统设计与实现

摘 要 计算机现在已成为人们办公和生活不可或缺的组成部分&#xff0c;在工作范畴计算机成熟运用大大提升了工作人员的工作效率&#xff0c;化繁为简&#xff0c;加速社会经济发展。在生活上&#xff0c;人们可以通过计算机互联网更快的了解到全球时事要闻、听到最新潮流音乐、…

LeetCode笔记:Biweekly Contest 110

LeetCode笔记&#xff1a;Biweekly Contest 110 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现 比赛链接&#xff1a;https://leetcode.com/contest/biweekly-contest-110 1. 题目…

特殊符号的制作 台风 示例 使用第三方工具 Photoshop 地理信息系统空间分析实验教程 第三版

特殊符号的制作 首先这是一个含有字符的&#xff0c;使用arcgis自带的符号编辑器制作比较困难。所以我们准备采用Adobe Photoshop 来进行制作符号&#xff0c;然后直接导入符号的图片文件作为符号 我们打开ps&#xff0c;根据上面的图片的像素长宽比&#xff0c;设定合适的高度…

centos7 yum源安装出错及更新问题

如下 首先&#xff0c;在搜索jdk时报错如下&#xff1a; 解决办法 1、进入 yum的repo目录 cd /etc/yum.repos.d/2、修改所有的CentOS文件内容 sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-*sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vau…

Debian如何让multilib和交叉编译工具链共存

Debian一个槽点是gcc/g/gfortran-multilib和交叉编译工具链如gcc/g/gfortran-riscv64-linux-gnu会互相卸载&#xff0c;解决办法如下&#xff1a; 1、安装build-essential&#xff08;gcc/g/libc6-dev/make/dpkg-dev&#xff09;和gfortran&#xff0c;记下被安装的gcc版本&am…

解决Map修改key的问题

需求 现在返回json数据带有分页的数据&#xff0c;将返回data属性数据变更为content&#xff0c;数据不变&#xff0c;key发生变化 实现1&#xff0c;源数据比较复杂&#xff0c;组装数据比较麻烦 说明&#xff1a;如果使用这种方式完成需求&#xff0c;需要创建对象&#xff0…

Vue3 条件渲染简单应用

去官网学习-》条件渲染 | Vue.js 运行示例&#xff1a; 代码&#xff1a;HelloWorld.vue <template><div class"hello"><h1>Vue 条件渲染</h1><h2 v-if"flag">true显示内容</h2><h2 v-if"flag2">fal…