码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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"] }
    
    • 1
    • 2
    • 3
    简单使用实例

    比如我们想获取我们外网的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(())
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    代码就比较简单,读起来也不会觉得太难,获取数据,并对其进行格式化。

    {
    origin: "32.194.43.24"
    }
    
    • 1
    • 2
    • 3

    同样的这里有一个配置选项,blocking 我们可以把它开起来。

    [dependencies]
    reqwest = { version = "0.11", features = ["blocking", "json"] }
    
    • 1
    • 2

    代码就变成这样子:

    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(())
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    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()?;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    同样的,还有可以进行其他的一些设置,可以通过这个文档进行参看。

  • 相关阅读:
    【2022国赛模拟】最小生成树——Kruskal、矩阵、树剖动态DP
    Redis常用命令手册
    当 SQL DELETE 邂逅 Table aliases,会擦出怎样的火花
    NIO之非阻塞模式
    数据挖掘与------跨行业数据挖掘标准流程:CRISP-DM
    uniapp登录页面( 适配:pc、小程序、h5)
    kafka生产者发送消息报错 Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
    ps2021神经网络AI滤镜下载,ps神经网络滤镜安装包
    web第四天(使用CSS变换效果、过度效果、动画)
    使用 Sealos 在离线环境中光速安装 K8s 集群
  • 原文地址:https://blog.csdn.net/weixin_40425640/article/details/127648862
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号