Go语言:发送HTTP请求(GET & POST&NewRequest)_go 发送http请求_付少华的博客-CSDN博客


本站和网页 https://blog.csdn.net/weixin_44014995/article/details/113504938 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Go语言:发送HTTP请求(GET & POST&NewRequest)_go 发送http请求_付少华的博客-CSDN博客
Go语言:发送HTTP请求(GET & POST&NewRequest)
付少华
于 2021-02-01 11:42:02 发布
9488
收藏
分类专栏:
Go基础
GoWeb
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44014995/article/details/113504938
版权
Go基础
同时被 2 个专栏收录
72 篇文章
7 订阅
订阅专栏
GoWeb
7 篇文章
1 订阅
订阅专栏
代码示例:
GET&POST列子:
package main
import (
"bytes"
"encoding/json"
"io"
"io/ioutil"
"net/http"
"time"
// 发送GET请求
// url: 请求地址
// response: 请求返回的内容
func Get(url string) string {
// 超时时间:5秒
client := &http.Client{Timeout: 5 * time.Second}
resp, err := client.Get(url)
if err != nil {
panic(err)
defer resp.Body.Close()
var buffer [512]byte
result := bytes.NewBuffer(nil)
for {
n, err := resp.Body.Read(buffer[0:])
result.Write(buffer[0:n])
if err != nil && err == io.EOF {
break
} else if err != nil {
panic(err)
return result.String()
// 发送POST请求
//func Post(url string, contentType string, body io.Reader) (resp *Response, err error)
// url: 请求地址
// data: POST请求提交的数据
// contentType: 请求体格式,如:application/json
// body : 请求发送的内容
//func NewReader(s string) *Reader
//NewReader:返回一个从s读取的新阅读器(仅支持读)。
//NewReader:创建一个从s读取数据的Reader(阅读器)。
//Post:Post向指定的URL发出Post(post请求)
res, err := http.Post(esRequestUrl, "application/json", strings.NewReader(string(esRequestData)))
if err != nil {
log.GLogger.Error(err.Error())
return nil, err
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
log.GLogger.Error(err.Error())
return nil, err
log.GLogger.Info("es search url:%v, req:%T, resp:%v", esRequestUrl, esRequestData, string(body))
net/http包没有封装直接使用请求带header的get或者post方法,所以,要想请求中带header或设置cookie(下面列子中有设置cookie的方法),只能使用NewRequest方法(使用该方法时需要先对client实例化:client := &http.Client{})
import (
"net/http"
"json"
"ioutil"
type Student struct{
id string
name string
type StudentReq struct{
id string
name string
func main() {
stu := Student{
id:"2ed4tg5fe35fgty3yy6uh",
name:"amber",
stu,err := json.Marshal(&stu)
reader := bytes.NewReader(stu)
request,err := http.NewRequest("POST", "http://192.168.1.12:8000/create", reader)
request.Header.Set("Content-Type", "application/json")
client:=&http.Client{}
response,err := client.Do(request)
defer response.Body.Close()
body,err := ioutil.ReadAll(response.Body)
fmt.Printf(string(body))
var stuReq StudentReq
err = json.UnMarshal(body, &stuReq)
fmt.Println(json.MarshalIndent(stuReq))
stu,err := json.Marshal(&stu):将stu对象改为json格式reader := bytes.NewReader(stu):所以将json改为byte格式,作为body传给http请求request,err := http.NewRequest(“POST”, “http://192.168.1.12:8000/create”, reader):创建url>response,err := client.Do(request):客户端发起请求,接收返回值body,err := ioutil.ReadAll(response.Body):读取body的值,返回类型是bytejson.MarshalIndent(stuReq):修改json为标准格式
http.Clicent:是一个HTTP客户端,客户机比往返器(比如传输)更高级,还处理HTTP细节,比如cookie,重定向,长连接。
func httpDo() {
// http.Clicent:是一个HTTP客户端,客户机比往返器(比如传输)更高级,还处理HTTP细节,比如cookie,重定向,长连接。
client := &http.Client{}
// 使用 NewRequest 设置头参数、cookie之类的数据,
req, err := http.NewRequest("POST", "http://www.01happy.com/demo/accept.php", strings.NewReader("name=cjb"))
if err != nil {
// handle error
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.Header.Set("Cookie", "name=anny")
resp, err := client.Do(req)
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
// handle error
fmt.Println(string(body))
未完待续~
付少华
关注
关注
点赞
收藏
觉得还不错?
一键收藏
打赏
知道了
评论
Go语言:发送HTTP请求(GET & POST&NewRequest)
代码示例:package mainimport ( "bytes" "encoding/json" "io" "io/ioutil" "net/http" "time")// 发送GET请求// url: 请求地址// response: 请求返回的内容func Get(url string) string { // 超时时间:5秒 client := &http.Client{Timeout:
复制链接
扫一扫
专栏目录
Go语言中利用http发起Get和Post请求的方法示例
09-21
主要给大家介绍了关于Go语言中利用http发起Get和Post请求的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
go的http包客户端的使用
水痕
03-14
1630
一、基本介绍
在net/http包中提供了一个被称为Client的结构体,该结构体位于库文件的src/net/http/client.go文件中,常见使用场景一般是做go web开发过程中对接第三方的api接口(常见的比如微信授权获取手机号码等),爬虫领域的使用
在Client这个结构体中已经帮我们实现了比较常见的Get和Post请求,如果你要使用Delete等别的请求方式就要使用原生的http.NewRequest,其中Get和Post只是官方帮我们封装了,底层还是使用的http.NewRequest来实
参与评论
您还未登录,请先
登录
后发表或查看评论
Golang Gin HTTP 请求和参数解析
小楼一夜听春雨,深巷明朝卖杏花
04-26
477
在gin框架中,Engine被定义成为一个结构体,Engine代表gin框架的一个结构体定义,其中包含了路由组、中间件、页面渲染接口、框架配置设置等相关内容。http协议中一共定义了八种方法或者称之为类型来表明对请求网络资源(Request-URI)的不同的操作方式,分别是:OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT。delete是在删除资源的时候执行。Context是gin框架中封装的一个结构体,这是gin框架中最重要,最基础的一个结构体对象。
go语言httpPost请求
dragon_hzlong的博客
11-24
2096
httpUtil
package utils
import (
"bytes"
"encoding/json"
"io/ioutil"
"net/http"
"net/url"
"strings"
"time"
var client = http.Client{
Timeout: 10 * time.Second,
func HttpPostJson(url string, data interface{}, result interface{}, header map[.
golang中发送http请求的几种常见情况
diemoyi5954的博客
07-19
1046
整理一下golang中各种http的发送方式
最初的一些项目中,很多的地方都使用到了golang发送http请求,之后再对请求收到的结果进行一些处理,所用到的模式也比较固定,这里整理一下集中http的发送方式,先记录这么多,再一点一点添加。
最基本的场景
方式一 使用http.Newrequest
先生成http.client -> 再生成 http.request -> 之...
golang发送http请求
janthinasnail的博客
09-02
5821
1、使用http.Get发送get请求
package main
import (
"fmt"
"io/ioutil"
"net/http"
func main() {
resp, err := http.Get("https://www.baidu.com")
if err != nil {
panic(err)
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil
go http.NewRequest用法
zhuziwan的博客
04-08
3383
导入
import (
“bytes”
“crypto/tls”
“encoding/json”
“fmt”
“io/ioutil”
“log”
“net/http”
“reflect”
“time”
func main(){
type User struct {
Username string `json:"username"`
Password string `json:"password"`
urlSign := "https://ip:port"
user := User{"user",
Beego控制器发送GET/POST请求并获取返回信息
Sol的博客
10-31
3764
//发送GET请求
//url:请求地址
//response:请求返回的内容
func Get(url string) (response string) {
client := http.Client{Timeout: 5 * time.Second}
resp, error := client.Get(url)
defer resp.Body.Close()
if error != ...
go 学习笔记之http请求
qq_43756091的博客
08-22
5147
go 学习笔记之http请求
今天学习一下,如何用原生的http包优雅的发起http请求。
先准备服务端接口,这里使用的是gin框架
package main
import (
"github.com/gin-gonic/gin"
"io/ioutil"
"log"
"net/http"
var logger = log.Default()
func main() {
engine := gin.Default()
engine.GET("/get", func(context *gi
go 发送http请求
小僵尸打字员的博客
04-23
2366
写了一下go发送http请求常用的几种方法
package main
import (
"net/http"
"io/ioutil"
"fmt"
"strings"
"net/url"
"bytes"
"encoding/json"
func main() {
urls := "http://www.baidu.com/"
var data = map[string]in...
Golang: HTTP之Post请求
JaweG
08-30
3780
给定post请求包体(是json的字符串)
"A" : 10086,
"B" : "请求信息"
发送HTTP过程
1. 将post请求包体(是个json格式的字符串),Marshal成json格式
2. 发送HTTP请求
3. 接收HTTP返回体
4. 解析HTTP返回体,判断返回是否正确
// HTTP: post请求参数
// {
// "A" : 10086,
// "B" : "请求信息"
// }
type RequestParam struc
python通过get,post方式发送http请求和接收http响应的方法
01-20
本文实例讲述了python通过get,post方式发送http请求和接收http响应的方法。分享给大家供大家参考。具体如下:
测试用CGI,名字为test.py,放在apache的cgi-bin目录下:
#!/usr/bin/python
import cgi
def main():
print Content-type: text/html\n
form = cgi.FieldStorage()
if form.has_key(ServiceCode) and form[ServiceCode].value != :
print Hello
Go语言服务器开发实现最简单HTTP的GET与POST接口
09-22
主要介绍了Go语言服务器开发实现最简单HTTP的GET与POST接口,实例分析了Go语言http包的使用技巧,需要的朋友可以参考下
JAVA发送http get/post请求,调用http接口、方法详解
08-26
主要介绍了Java发送http get/post请求调用接口/方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
java发送http的get、post请求实现代码
09-02
下面小编就为大家带来一篇java发送http的get、post请求实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Go语言Web编程实现Get和Post请求发送与解析的方法详解
09-21
主要介绍了Go语言Web编程实现Get和Post请求发送与解析的方法,结合实例形式分析了Go语言客户端、服务器端结合实现web数据get、post发送与接收数据的相关操作技巧,需要的朋友可以参考下
Go语言开发发送Get和Post请求的示例
09-20
主要介绍了Go语言开发发送Get和Post请求的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Golang发送Get和Post请求
sunriseYJP的博客
09-08
3334
Golang发送Get请求和Post请求
golang实现http的get和post
weixin_33896726的博客
11-17
598
2019独角兽企业重金招聘Python工程师标准>>>
...
go发送post get请求的库
最新发布
04-29
在Go语言中,发送HTTP请求时常用的库有net/http、http.NewRequest和http.DefaultClient。
net/http是Go语言中最常用的标准HTTP客户端库,可以向外部API发起GET、POST等请求。
http.NewRequest是net/http库中的一个函数,用于创建一个新的HTTP请求实例。通过设置请求头、请求参数等方式,可以自定义HTTP请求的各种参数。
http.DefaultClient是net/http库中默认的HTTP客户端,通过它可以发送GET、POST等HTTP请求。它可以被视为一个单例对象,全局范围内只会被创建一次。在发送HTTP请求时,使用http.DefaultClient发送请求可以避免频繁创建和销毁HTTP客户端对象。
除此之外,还有第三方库如gorequest、grequests、httpbin-client等也可用于发送HTTP请求。这些库封装了一些便捷的API,可以方便地发送HTTP请求并处理返回数据。其中,gorequest是一个类似于jQuery Ajax方法的HTTP请求工具库,grequests是一个支持异步请求的HTTP请求库,httpbin-client则是一个HTTP请求的测试工具库,可以用于模拟HTTP请求的各种场景。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
付少华
CSDN认证博客专家
CSDN认证企业博客
码龄5年
暂无认证
135
原创
24万+
周排名
2万+
总排名
15万+
访问
等级
1728
积分
21
粉丝
150
获赞
51
评论
241
收藏
私信
关注
热门文章
解决:git SSL certificate problem: unable to get local issuer certificate
22993
golang sleep(睡眠)
16299
Go语言:发送HTTP请求(GET & POST&NewRequest)
9473
go类型断言
4599
Gin框架 获取请求参数
4544
分类专栏
基础算法
5篇
网络通讯协议
2篇
Git
11篇
go标准库的使用
15篇
MySql知识点
4篇
Gin项目搭建
2篇
Go基础
72篇
Linux系统操作
6篇
GoWeb
7篇
Es
1篇
Gorm
1篇
go编程遇到的问题
3篇
shell命令
1篇
编程相关知识
7篇
K8s
1篇
Nginx
3篇
虚拟机
非关系性数据库
7篇
GO面试
Go iris框架
1篇
分布式
1篇
Go与数据库
2篇
最新评论
解决:git SSL certificate problem: unable to get local issuer certificate
WuYiPeng47:
太牛了大佬
解决:git SSL certificate problem: unable to get local issuer certificate
wbybb:
你是我滴神
解决:git SSL certificate problem: unable to get local issuer certificate
haywood274:
mua~
解决:git SSL certificate problem: unable to get local issuer certificate
akutac:
爱死你了!
解决:git SSL certificate problem: unable to get local issuer certificate
极灰:
nb啊大佬
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Goland Mac M1芯片无法Debug 原因总结与处理方法汇总
算法复杂度 O(1),O(n),O(logn),O(nlogn)的区别
网络编程(十四) :什么是Socket ?
2023年1篇
2022年12篇
2021年30篇
2020年96篇
目录
目录
分类专栏
基础算法
5篇
网络通讯协议
2篇
Git
11篇
go标准库的使用
15篇
MySql知识点
4篇
Gin项目搭建
2篇
Go基础
72篇
Linux系统操作
6篇
GoWeb
7篇
Es
1篇
Gorm
1篇
go编程遇到的问题
3篇
shell命令
1篇
编程相关知识
7篇
K8s
1篇
Nginx
3篇
虚拟机
非关系性数据库
7篇
GO面试
Go iris框架
1篇
分布式
1篇
Go与数据库
2篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
红包个数最小为10个
红包总金额
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
付少华
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值