当前位置: 首页 > news >正文

golang常用库之-HTTP客户端请求库 grequests

文章目录

  • golang常用库之-HTTP客户端请求库 grequests
    • 什么是grequests
    • 使用

golang常用库之-HTTP客户端请求库 grequests

什么是grequests

官网:github.com/levigross/grequests

A Go “clone” of the great and famous Requests library

Go语言的grequests库是一个非常方便的HTTP客户端请求库,具有如下特点:

  1. 使用简单,与Python的requests库类似,可以通过Get/Post/Put等方法发起请求。
  2. 支持设置请求参数,包括query参数、headers、cookies等。
  3. 支持添加代理,实现代理请求。
  4. 支持HTTPS请求。
  5. 支持文件上传。
  6. 支持超时控制。
  7. 支持连接池,重用连接。
  8. 支持自动编码请求参数为表单格式。
  9. 返回支持直接读取响应体或绑定为JSON。
  10. 同时支持同步和异步请求。
  11. 跨平台,支持Linux、Mac、Windows等。
  12. 社区活跃,持续维护更新。

使用

get请求

resp, err := grequests.Get("http://httpbin.org/get", nil)
// You can modify the request by passing an optional RequestOptions struct
if err != nil {log.Fatalln("Unable to make request: ", err)
}
fmt.Println(resp.String())

post 请求demo,来自开源项目elkeid:internal/agent_center/httptrans/client/config.go

func GetConfigFromRemote(agentID string, detail map[string]interface{}) ([]*pb.ConfigItem, error) {rOption := &grequests.RequestOptions{JSON: detail,}resp, err := grequests.Post(fmt.Sprintf(ConfigUrl, common.GetRandomManageAddr()), rOption)if err != nil {ylog.Errorf("GetConfigFromRemote", "error %s %s", agentID, err.Error())return nil, err}if !resp.Ok {ylog.Errorf("GetConfigFromRemote", "response code is not 200, AgentID: %s, StatusCode: %d,String: %s", agentID, resp.StatusCode, resp.String())return nil, errors.New("status code is not ok")}var response ResAgentConferr = json.Unmarshal(resp.Bytes(), &response)if err != nil {ylog.Errorf("GetConfigFromRemote", "agentID: %s, error: %s, resp:%s", agentID, err.Error(), resp.String())return nil, err}if response.Code != 0 {ylog.Errorf("GetConfigFromRemote", "response code is not 0, agentID: %s, resp: %s", agentID, resp.String())return nil, errors.New("response code is not 0")}

相关文章:

golang常用库之-HTTP客户端请求库 grequests

文章目录 golang常用库之-HTTP客户端请求库 grequests什么是grequests使用 golang常用库之-HTTP客户端请求库 grequests 什么是grequests 官网:github.com/levigross/grequests A Go “clone” of the great and famous Requests library Go语言的grequests库是一…...

17基于matlab卡尔曼滤波的行人跟踪算法,并给出算法估计误差结果,判断算法的跟踪精确性,程序已调通,可直接运行,基于MATLAB平台,可直接拍下。

17基于matlab卡尔曼滤波的行人跟踪算法,并给出算法估计误差结果,判断算法的跟踪精确性,程序已调通,可直接运行,基于MATLAB平台,可直接拍下。 17matlab卡尔曼滤波行人跟踪 (xiaohongshu.com)...

SpringCloud之Stream框架集成RocketMQ消息中间件

Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。它可以基于 Spring Boot 来创建独立的、可用于生产的 Spring 应用程序。Spring Cloud Stream 为一些供应商的消息中间件产品提供了个性化的自动化配置实现,并引入了发布-订阅、消费组、分区这三…...

与创新者同行!Apache Doris 首届线下峰会即将开启,最新议程公开!|即刻预约

点击此处 即刻报名 Doris Summit Asia 2023 回顾人类的发展史,地球起源于 46 亿年前的原始星云、地球生命最初出现于 35 亿年前的原始海洋、人类物种诞生于数百万年前,而人类生产力的真正提升源于十八世纪六十年代的工业革命,自此以后&#…...

vue解决:Parsing error: No Babel config file detected for ....

报错信息 Parsing error: No Babel config file detected for C:\Users\Admin\Desktop\shabi\work\src\App.vue. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files. 分析错误:没有检测…...

算法题:K 次取反后最大化的数组和(典型的贪心算法问题)

这道题没有看题解,直接提交,成绩超越99.5%,说明思路是优的。就是考虑的情况里面弯弯绕比较多,需要考虑全面一点。(本题完整题目附在了最后面) 具体思路如下: 1、首先排序,然后从最…...

Go语言中向[]byte数组中增加一个元素

要向http.Request的body中添加一个键值对,可以先将其转换为一个map,然后对其进行修改,最后再将其转回为byte数组。 以下是一个示例代码: import ("net/http""io/ioutil""encoding/json" )type Re…...

CSS 布局案例: 2行、多行每行格数不定,最后一列对齐

布局期望的效果如下&#xff1a; 第二行最后一格与第一行最后一格对齐。每行格数不定。自动拉伸填充整个宽度 实现&#xff1a; 一开始打算用display:flex&#xff0c; 自动分散&#xff0c;但是第二行对齐第一行最后一格控制不了。 使用grid fr均分单位控制。 <!DOCTYPE…...

数据结构--算法、数据结构的基本概念

&#x1f4d5;参考&#xff1a;王道 一、算法的基本概念 1.程序数据结构算法 2.算法的特性 &#xff08;1&#xff09;有穷性 执行有穷步之后结束&#xff0c;且每一步都可在有穷时间内完成。 &#xff08;2&#xff09;确定性 &#xff08;3&#xff09;可行性 可通过已经实…...

Edge浏览器下载文件被保存为 .crdownload 文件的问题小记

问题 近期使用Edge浏览器下载文件时&#xff0c;文件都被保存为 .crdownload 格式的文件了&#xff0c;不确定从哪个版本开始的。除非下载未完成导致文件不完整&#xff0c;否则不会被保存为 .crdownload 格式的文件&#xff1b;实际上文件已完成了下载&#xff0c;且手工修改…...

6-10 单链表分段逆转 分数 15

void K_Reverse( List L, int K ) { //此题已经默认size > K 因为当size < K时 反转后将不再符合链表的定义//求出表中元素个数int size 0;for (List cur L->Next; cur ! NULL; cur cur->Next)size; List prv, cur, next, first, head L;//共需要反转 si…...

【单片机】17-温度传感器DS18B20

1.DS18B20相关背景知识 1.温度传感器 &#xff08;1&#xff09;测温度的方式&#xff1a;物理&#xff08;汞柱&#xff0c;气压&#xff09;&#xff0c;电子&#xff08;金属电性能随温度变化&#xff09; &#xff08;2&#xff09;早期&#xff1a;热敏电阻&#xff08;模…...

力扣 -- 5. 最长回文子串

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:string longestPalindrome(string s) {int ns.size();vector<vector<bool>> dp(n,vector<bool>(n));//最长回文串的起始位置int start0;//最长回文串的长度int len0;for(int in-1;i>…...

SpringCloud源码探析(十)-Web消息推送

1.概述 消息推送在日常使用中的场景比较多&#xff0c;比如有人点赞了我的博客或者关注了我&#xff0c;这时我就会收到一条推送消息&#xff0c;以此来吸引我点击或者打开应用。消息推送的方式主要分为两种&#xff1a;web消息推送和移动端消息推送。它将所要发送的信息&…...

Vue、React和小程序中的组件通信:父传子和子传父

在前端开发中&#xff0c;组件化是一种常见的开发模式&#xff0c;它可以将复杂的用户界面拆分成多个可重用的组件。在Vue、React和小程序中&#xff0c;组件之间的数据和事件传递是非常关键的&#xff0c;其中父传子和子传父是常见的通信方式。本文将介绍在Vue、React和小程序…...

安卓玩机----展讯芯片机型解锁 读写分区工具 操作步骤解析

国内机型大都使用高通和MTK芯片。展讯芯片使用的较少。相对来说高通和mtk机型解锁以及读取分区工具较多。展讯的几乎没有。目前有大佬开发出了一款展讯芯片解锁 与读写分区工具.开源的tools 官方分享说明&#xff1a; 是一款专为 Windows 计算机设计的免费、用户友好的工具&am…...

微软放大招!Bing支持DALL-E3,免费AI绘画等你来体验!

最近 OpenAI 发布了DALL-E3模型&#xff0c;出图效果和Midjourney不相上下&#xff0c;不过要使用它有些门槛&#xff0c;必须是 ChatGPT Plus 账户&#xff0c;而且还要排队&#xff0c;怎么等都等不到&#xff0c;搞得大家都比较焦虑。 不过现在微软在Bing上也支持 DALL-E3 …...

tp5访问的时候必须加index.php,TP5配置隐藏入口index.php文件

PS&#xff1a;这里说的入口文件指的是public/index.php,配置文件就在这个目录下 可以去掉URL地址里面的入口文件index.php&#xff0c;但是需要额外配置WEB服务器的重写规则。 以Apache为例&#xff0c;需要在入口文件的同级添加.htaccess文件(官方默认自带了该文件)&#x…...

16k面试中的10个问题

你好&#xff0c;我是田哥 节前&#xff0c;有位朋友跟我反馈面试中一些问题&#xff0c;这位朋友的基本情况&#xff1a; 坐标&#xff1a;上海&#xff0c;年限&#xff1a;3年不到&#xff0c;期望薪资&#xff1b;16k 下面我们来看看具体问题&#xff1a; 01&#xff1a;请…...

STM32单片机入门学习(六)-光敏传感器控制LED

光敏传感器模块和LED接线 LED负极接B12,正极接VCC 光敏传感模块一DO端接B13,GND接GND&#xff0c;VCC接VCC,AO不接。 如图&#xff1a; 主程序代码&#xff1a;main.c #include "stm32f10x.h" #include "Delay.h" //delay函数所在头文件 #include …...

卡证检测矫正模型在嵌入式单片机上的应用探索

卡证检测矫正模型在嵌入式单片机上的应用探索 最近在做一个工业物联网的项目&#xff0c;需要给现场的设备加个证件核验功能。客户要求很简单&#xff1a;成本要低&#xff0c;部署要方便&#xff0c;最好能直接集成到现有的单片机系统里。一开始我们觉得这不可能——卡证检测…...

华为NPU上跑大模型?手把手教你用vLLM-Ascend插件部署Qwen2

华为NPU实战&#xff1a;基于vLLM-Ascend插件的高效大模型部署指南 1. 环境准备与基础配置 在华为Ascend NPU上部署大模型&#xff0c;首先需要确保硬件和软件环境满足基本要求。Atlas 800I A2或Atlas A2 Training系列设备是当前官方推荐的选择&#xff0c;操作系统需为Linux发…...

基于STM32与ADS1258的高精度电流数据采集方案实现

1. 高精度电流采集系统设计思路 电流测量在工业自动化、新能源和车载电子等领域都是基础但关键的环节。传统方案使用普通ADC配合分压电阻&#xff0c;精度往往只能达到1%左右&#xff0c;而采用ADS1258这类24位Σ-Δ ADC&#xff0c;配合STM32主控&#xff0c;可以实现0.01%级的…...

腾讯云GPU服务器上,手把手教你5分钟搞定Isaac Sim 5.0环境(附VNC黑屏自救指南)

腾讯云GPU服务器5分钟极速部署Isaac Sim 5.0全攻略 在机器人仿真与AI训练领域&#xff0c;NVIDIA Isaac Sim已成为行业标杆工具。但许多开发者在云端部署时&#xff0c;往往耗费数小时甚至数天时间卡在环境配置环节。本文将基于腾讯云GPU服务器&#xff0c;分享一套经过实战验证…...

团队协作中的Git分支管理:为什么我们最终放弃了Rebase?

团队协作中的Git分支管理&#xff1a;为什么我们最终放弃了Rebase&#xff1f; 当我们的技术团队从5人扩展到20人时&#xff0c;Git仓库的提交历史突然变成了需要考古学家破译的楔形文字。最初被Rebase的"整洁线性历史"吸引的我们&#xff0c;在经历三个月的实践后&a…...

团队知识协作平台:构建高效智能的文档管理系统

团队知识协作平台&#xff1a;构建高效智能的文档管理系统 【免费下载链接】outline Outline 是一个基于 React 和 Node.js 打造的快速、协作式团队知识库。它可以让团队方便地存储和管理知识信息。你可以直接使用其托管版本&#xff0c;也可以自己运行或参与开发。源项目地址&…...

如何让foobar2000焕然一新?探索DUI皮肤配置的无限可能

如何让foobar2000焕然一新&#xff1f;探索DUI皮肤配置的无限可能 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 你是否厌倦了千篇一律的音乐播放器界面&#xff1f;每天与音乐相伴数小时&#xff0…...

CMD脚本开发避坑指南:为什么你的bat文件总是报错?

CMD脚本开发避坑指南&#xff1a;为什么你的bat文件总是报错&#xff1f; 每次双击运行精心编写的bat文件时&#xff0c;看到那个刺眼的"不是内部或外部命令"错误提示&#xff0c;是不是感觉血压瞬间飙升&#xff1f;作为Windows系统中最基础的自动化工具&#xff0c…...

AHT20温湿度传感器在STM32上的应用:从数据采集到OLED显示

AHT20温湿度传感器在STM32上的实战应用&#xff1a;从数据采集到OLED可视化 在物联网和智能硬件开发中&#xff0c;环境数据的实时监测与可视化是基础却关键的一环。AHT20作为新一代数字温湿度传感器&#xff0c;以其高精度、低功耗和I2C接口的便捷性&#xff0c;成为STM32开发…...

Cogito-V1-Preview-Llama-3B模型微调(Fine-tuning)数据准备入门教程

Cogito-V1-Preview-Llama-3B模型微调数据准备入门教程 你是不是也对那些能写代码、能聊天的AI模型感到好奇&#xff0c;甚至想自己动手&#xff0c;教一个模型学会你的专属技能&#xff1f;比如&#xff0c;让它帮你写特定风格的文案&#xff0c;或者理解你公司内部的业务文档…...