返回顶部
首页 > 资讯 > 后端开发 > GO >golangNewRequest/gorequest实现http请求的示例代码
  • 530
分享到

golangNewRequest/gorequest实现http请求的示例代码

2024-04-02 19:04:59 530人浏览 八月长安
摘要

通过Go语言实现Http请求 http.Post import (     "net/http"     "net/url" ) data := url.Values{"start

通过Go语言实现Http请求

http.Post

import (
    "net/http"
    "net/url"
)

data := url.Values{"start":{"100"}, "hobby":{"xxxx"}}
body := strings.NewReader(data.Encode())
resp, err := http.Post("127.0.0.1:9338", "application/x-www-fORM-urlencoded", body)

net/http包没有封装直接使用请求带header的get或者post方法,所以,要想请求中带header,只能使用NewRequest方法

http.NewRequest

客户端:

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的值,类型是byte
  • json.MarshalIndent(stuReq):修改json为标准格式

注意(坑):

1、header里的参数是Content-Type,不要写成ContentType
2、【go http: read on closed response body 】如果发送的请求是分为2个func写的,记住defer要在ioutil.ReadAll之后执行,否则报错

gorequest

这种方式适合在url里拼接参数使用param直接传递

"GitHub.com/parnurzeal/gorequest"

func main() {
    resp, body, errs := gorequest.New().Post("http://127.0.0.1/create").Param("ip", "192.168.1.4").EndBytes()
        if errs != nil || resp.StatusCode >= 300 {
            log.Errorf("fail to call api with errors %v, %+v", errs, body)
        }
    var stuReq StudentReq 
    err = json.UnMarshal(body, &stuReq)
    fmt.Println(json.MarshalIndent(stuReq))
}

到此这篇关于golang NewRequest/gorequest实现http请求的示例代码的文章就介绍到这了,更多相关golang http请求内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: golangNewRequest/gorequest实现http请求的示例代码

本文链接: https://lsjlt.com/news/120979.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • golangNewRequest/gorequest实现http请求的示例代码
    通过go语言实现http请求 http.Post import (     "net/http"     "net/url" ) data := url.Values{"start...
    99+
    2024-04-02
  • shell脚本发送http请求的实现示例
    简述:使用shell脚本发送http请求,解析请求获取token再次发起请求 系统:Ubuntu系统 工具:cURL(发送http请求),jq(解析json),没有需要安装 host="192.168.1.199" po...
    99+
    2023-04-28
    shell发送http请求 shell http发送请求
  • C#调用HTTP POST请求上传图片的示例代码
    现在很多B/S系统的开发都是通过API方式来进行的,一般服务端会开放一个API接口,客户端调用API接口来实现图片或文件上传的功能。 GET和POST是什么?HTTP协议中的...
    99+
    2024-04-02
  • 利用js实现Ajax并发请求限制请求数量的示例代码
    出现问题描述:当不确定异步请求个数时,为防止当一瞬间发生上百个http请求时,导致堆积了无数调用栈进而导致内存溢出问题。 要求:将同一时刻并发请求数量控制在3个以内,同时还要尽可能快...
    99+
    2024-04-02
  • Android HTTP发送请求和接收响应的实例代码
    添加权限 首先要在manifest中加上访问网络的权限: 代码如下: <manifest ... > <uses-permission android:na...
    99+
    2022-06-06
    HTTP Android
  • Qt实现http服务的示例代码
    先看执行结果: Qt HttpServer 左边是开启的Qt Http服务,监控服务端口,及接收客户端请求;右侧是浏览器访问服务。 下面是具体代码: HttpDemo.pro QT...
    99+
    2023-05-15
    Qt实现http服务 Qt http服务 Qt http
  • SpringMVC处理multipart请求的示例代码
    一、简述multipart格式的数据会将一个表单拆分为多个部分(part),每个部分对应一个输入域。在一般的表单输入域中,它所对应的部分中会放置文本型数据,但是如果上传文件的话,它所对应的部分可以是二进制。类似这样:二、 配置 multip...
    99+
    2023-05-30
  • Java使用CountDownLatch实现网络同步请求的示例代码
    CountDownLatch 是一个同步工具类,用来协调多个线程之间的同步,它能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。 这里是使用CountDownLatch和...
    99+
    2023-01-04
    Java CountDownLatch网络同步请求 Java CountDownLatch同步请求 Java CountDownLatch
  • Go http请求排队处理实战示例
    目录一、http请求的顺序处理方式二、http请求的异步处理方式--排队处理工作单元队列消费者协程完整代码总结一、http请求的顺序处理方式 在高并发场景下,为了降低系统压力,都会使...
    99+
    2024-04-02
  • vue 请求后端数据的示例代码
    在vue中,我们如何通过请求接口来访问后端的数据呢?在这里简单总结了一个小示例: 主要问题:如果不封装的话,在每次请求的时候都要书写一遍下面的代码,造成代码冗余。 1、在src目录...
    99+
    2024-04-02
  • Linux shell实现HTTP服务示例代码
    一、前言 使用代理服务器 HAProxy 对 Mysql 做负载均衡是常用方案,为提高可用性,当某个 Mysql 出现问题时,例如服务器故障了,或者数据复制中断了,最好可以让 HAProxy 马上知道,然后...
    99+
    2022-06-04
    示例 代码 Linux
  • 使用Go http重试请求的示例
    开发中对于http请求是经常遇到,一般可能网络延迟或接口返回超时,对于发起客户端的请求,除了设置超时时间外,请求重试是很有必要考虑的,我们不用重复造轮子,可以使用https://gi...
    99+
    2024-04-02
  • php中http请求类的示例分析
    这篇文章将为大家详细讲解有关php中http请求类的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码:<php namespace dollar...
    99+
    2024-04-02
  • ES6 Fetch API HTTP请求的示例分析
    这篇文章主要为大家展示了“ES6 Fetch API HTTP请求的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ES6 Fetch API HTTP请...
    99+
    2024-04-02
  • SpringAOP实现接口请求记录到数据库的示例代码
    目录1.引入AOP依赖2.创建日志记录表3.日志实体类4.Dao+Mapper+service5.自定义注解6.操作日志切面类7.使用1.引入AOP依赖 <dependenc...
    99+
    2024-04-02
  • NodeJS收发GET和POST请求的示例代码
    本文介绍了NodeJS收发GET和POST请求的示例代码,分享给大家,也给自己留个笔记 一 express框架接收 app.get('/',function(req,res) { var url...
    99+
    2022-06-04
    示例 收发 代码
  • JAVA获取HTTP请求头的方法示例
    本文实例讲述了JAVA获取HTTP请求头的方法。分享给大家供大家参考,具体如下:在利用Java网络编程时,利用Java获取HTTP Request 和 Response头字段;可以利用Java语言根据需要添加自定义的HTTP头字段,而不必拘...
    99+
    2023-05-31
    java http请求头 ava
  • Tomcat中HTTP请求过程的示例分析
    这篇文章给大家分享的是有关Tomcat中HTTP请求过程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。初探Tomcat的HTTP请求过程前言:1.作为Java开发人员,大多都对Tomcat不陌生,由Ap...
    99+
    2023-06-02
  • Angular通过 HTTP Interceptor 实现 HTTP 请求超时监控的例子
    当开发人员在 Dynatrace 中查看这些请求时,将无法再看到超时后正在进行的 API 调用。 该过程在后台进行渲染,但 Dynatrace 看到返回给客户端的响应并停止记录,在这...
    99+
    2024-04-02
  • Java基于IDEA实现http编程的示例代码
    http开发前言之为什么要有应用层 我们已经学过TCP/IP , 已经知道目前数据能从客户端进程经过路径选择跨网络传送到服务器端进程 [ IP+Port ],可是,仅仅把数据从A点传...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作