Go语言之Golang http请求第三方库HttpRequest

2023-12-25 07:08

本文主要是介绍Go语言之Golang http请求第三方库HttpRequest,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Golang的第三方http请求包 https://github.com/kirinlabs/HttpRequest

具有快速构建Headers、Cookies、设置超时时间、请求耗时等功能

不管是Get还是Post请求都可以快速构建并发送请求,甚至还支持Put和Delete等方法

 

当设置req.Debug(true),还可以打印每次请求的相关信息,很方便开发过程中的调试工作

 

安装:go get:https://github.com/kirinlabs/HttpRequest

 

实例化:req := HttpRequest.NewRequest()

 

当请求https协议时提示x509: certificate signed by unknown authority时,可关闭证书验证

    req.SetTLSClient(&tls.Config{InsecureSkipVerify: true})

 

设置超时: req.SetTimeout(5)

 

打开调试模式:req.Debug(true)

 

设置Headers:

req.SetHeaders(map[string]string{
    "Content-Type": "application/x-www-form-urlencoded", //这也是HttpRequest包的默认设置
})


设置Cookies:    req.SetCookies(map[string]string{})

 

而且还支持连接操作

req := HttpRequest.NewRequest().Debug(true).SetTimeout(5).SetHeader()

 

获取返回的Response对象

    resp.Response()

 

获取返回码

    resp.StatusCode()

 

获取Body主体信息

    resp.Body() 

    返回[]byte和error

 

返回信息Json格式化

    body,err:=resp.Body()

    fmt.Pringln(resp.Json(body))

 

获取请求耗时

    resp.Time() string   单位是毫秒

 

以下是试用实例代码:

package mainimport ("HttpRequest""fmt""log"
)func main() {req := HttpRequest.NewRequest()// 设置超时时间,不设置时,默认30sreq.SetTimeout(5)// 设置Headersreq.SetHeaders(map[string]string{"Content-Type": "application/x-www-form-urlencoded", //这也是HttpRequest包的默认设置})// 设置Cookiesreq.SetCookies(map[string]string{"sessionid": "LSIE89SFLKGHHASLC9EETFBVNOPOXNM",})postData := map[string]interface{}{"id":    1,"title": "csdn",}// GET 默认调用方法resp, err := req.Get("http://127.0.0.1:8000?name=flyfreely", nil)// GET 传参调用方法// 第2个参数默认为nil,也可以传参map[string]interface{}// 第2个参数不为nil时,会把传入的map以query传参的形式重新构造新url// 新的URL: http://127.0.0.1:8000?name=flyfreely&id=1&title=csdn//resp, err := req.Get("http://127.0.0.1:8000?name=flyfreely", postData)// POST 调用方法//resp, err := req.Post("http://127.0.0.1:8000", postData)if err != nil {log.Println(err)return}if resp.StatusCode() == 200 {body, err := resp.Body()if err != nil {log.Println(err)return}fmt.Println(string(body))fmt.Println(resp.Json(body))}
}


原文:https://blog.csdn.net/flyfreelyit/article/details/80281467 

这篇关于Go语言之Golang http请求第三方库HttpRequest的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/534635

相关文章

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序