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

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

golang float和科学计数法转字符串的实现方式

《golangfloat和科学计数法转字符串的实现方式》:本文主要介绍golangfloat和科学计数法转字符串的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望... 目录golang float和科学计数法转字符串需要对float转字符串做处理总结golang float

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

golang实现延迟队列(delay queue)的两种实现

《golang实现延迟队列(delayqueue)的两种实现》本文主要介绍了golang实现延迟队列(delayqueue)的两种实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录1 延迟队列:邮件提醒、订单自动取消2 实现2.1 simplChina编程e简单版:go自带的time