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

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Go中select多路复用的实现示例

《Go中select多路复用的实现示例》Go的select用于多通道通信,实现多路复用,支持随机选择、超时控制及非阻塞操作,建议合理使用以避免协程泄漏和死循环,感兴趣的可以了解一下... 目录一、什么是select基本语法:二、select 使用示例示例1:监听多个通道输入三、select的特性四、使用se