Github每日精选(第68期):HTTP客户端哪家强-reqwest
reqwest
reqwest
又是一个http
的客户端,基本上来说,每一种语言都会开发出http
的客户端,这些库好不好用其实是另一回事,有才是关键。
一个简单而强大的 Rust HTTP 客户端。
github的地址在这里。
reqwest
的安装和使用并不复杂,这里介绍下,安装和简单的使用情况。
安装
你可以通过将它加入 Cargo.toml
这种方式简单快速安装 reqwest
,同时把 tokio
也添加并安装,因为 reqwest
底层使用了这个异步运行时。
[dependencies]
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
简单使用实例
比如我们想获取我们外网的ip地址,我们可以访问
https://httpbin.org/ip
这个网站,这个网站返回的是json
的数据,我们需要对json
进行格式化,获取相应的字段。
代码如下:
use std::collections::HashMap;#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {let resp = reqwest::get("https://httpbin.org/ip").await?.json::<HashMap<String, String>>().await?;println!("{:#?}", resp);Ok(())
}
代码就比较简单,读起来也不会觉得太难,获取数据,并对其进行格式化。
{origin: "32.194.43.24"
}
同样的这里有一个配置选项,blocking
我们可以把它开起来。
[dependencies]
reqwest = { version = "0.11", features = ["blocking", "json"] }
代码就变成这样子:
use std::collections::HashMap;fn main() -> Result<(), Box<dyn std::error::Error>> {let resp = reqwest::blocking::get("https://httpbin.org/ip")?.json::<HashMap<String, String>>()?;println!("{:#?}", resp);Ok(())
}
http 头的设置,同样的也可以在代码中进行:
let mut h = header::HeaderMap::new();h.insert("Accept", header::HeaderValue::from_static("application/json"));let client = reqwest::Client::builder().default_headers(h).build()?;
同样的,还有可以进行其他的一些设置,可以通过这个文档进行参看。
Github每日精选(第68期):HTTP客户端哪家强-reqwest相关推荐
- 每日思考第 68 期:如何致富,不靠运气2
每日思考专栏每周日更新,本期覆盖 20210301~20210307. 本期继续谈谈美国风险投资家 Naval 关于致富的观点. 210301:承担责任 [承担责任] 美国风险投资家 Naval 说: ...
- Github每日精选(第56期):支持多语言的文字识别EasyOCR
EasyOCR EasyOCR一款好用的OCR,支持80多种语言和所有流行的书写脚本,包括拉丁语.汉语.阿拉伯语.德瓦纳加里语.西里尔语等. OCR (Optical Character Recogn ...
- Github每日精选(第57期):用于绘制手绘图的虚拟白板excalidraw
excalidraw 在做ppt的时候,如果我们的图或者是表,用手绘的形式来完成的话,我们的ppt看起来就比较高档了,一个体现了我们的认真做ppt的态度,一个是体现了我们审美的高度. excalidr ...
- Github每日精选(第24期):python的浏览器MechanicalSoup
MechanicalSoup 可能你看到MechanicalSoup,就会想起BeautifulSoup,是的,这两个的功能用起来差不多,只是MechanicalSoup做的更多一点. Mechani ...
- Github每日精选(第48期):SQLite下的知识库memos
memos memos 是一个开源的.自托管的知识库,可与 SQLite db 文件一起使用. 使用SQLite db还是很有必要的,因为有的时候我们需要把我们的日志进行转移,直接把数据库拷走就可以了 ...
- Github每日精选(第77期):Go (Golang) 编写的 HTTP Web 框架gin
Gin Gin 是一个用 Go (Golang) 编写的 Web 框架.由于httprouter,它具有类似 martini 的 API,性能提高了 40 倍.如果您需要性能和良好的生产力,您一定会喜 ...
- Github每日精选(第79期):虚拟数据生成库faker
faker Faker是一个Python包,可以为你生成假数据.无论您是需要引导您的数据库.创建美观的 XML 文档.填写您的持久性以对其进行压力测试,还是对从生产服务中获取的数据进行匿名化,Fake ...
- Github每日精选(第75期):colly 爬取网站所有的数据
colly colly 是一个优雅的 Golang 爬虫框架. colly 提供了一个干净的接口来编写任何类型的爬虫/scraper/spider. 使用 Colly,您可以轻松地从网站中提取结构化数 ...
- Github每日精选(第33期):Screenshot-to-code训练 AI 将设计模型转换为 HTML 和 CSS
Screenshot-to-code Screenshot-to-code 深度学习将改变前端开发.它将增加原型设计速度并降低构建软件的门槛. github上的地址在这里. 当 Tony Beltra ...
最新文章
- 无人驾驶急需解决:规划控制和传感器价格高两大问题(附Apollo算法)
- Android中Preference的使用以及监听事件分析
- java 执行linux命令行_10个高效Linux技巧及Vim命令对比
- 理解 Azure 虚拟机的性能监视
- [转]密码技术-实现数字信封和数字签名
- PyTorch基础(part8)--LSTM
- Codeforces Round #FF (Div. 2):Problem A - DZY Loves Hash
- 移植oprofile到dm365
- 学习指南:零基础java入门教程(入门篇)
- ASP.NET在Web窗体上输出九九乘法表
- Java编程语言最流行的7个框架介绍
- Mac 使用终端彻底格式化U盘
- ajax实现JSONP跨域
- win10计算机恢复到一天前,win10怎么系统还原到某一时刻 win10系统还原之后会怎么样...
- VMware14 kali linux安装教程
- 树莓派刷系统(mac)
- 【趣味案例】用Python来做一个屏幕录制工具
- Ubuntu 截图工具 Flameshot
- css画三角形(面试题)
- python课程网络多少钱一年_python学费多少?线上python课程一般多少钱?
热门文章
- PDF怎么转Word?安利下面这三款软件给你
- pytorch-softmax解决分类问题,用fashion-mnist为例子,再走一遍数据获取到模型预测的流程。深度了解分类指标的递进关系
- Oracle数据库系统安全加固
- 刘芸担任A.O.史密斯明星体验官,直播介绍“斯”家好物
- CEO、CFO、COO
- Google Chrome动了我的奶酪?
- 【安全牛学习笔记】w3af-身份认证
- 手把手教你如何玩转插件:通用Mapper和Mybatis generator
- 华为imana命令行
- java中的modify,modify