首页 > 其他分享 >Golang:使用go-resty/resty发送http请求get和post

Golang:使用go-resty/resty发送http请求get和post

时间:2024-05-25 12:29:09浏览次数:20  
标签:resty httpbin get random 20 https go http

Golang:使用go-resty/resty发送http请求get和post

原创 吃个大西瓜 Coding Big Tree 2024-05-25 08:00 北京 听全文

图片

 

go-resty/resty是一个简单的 HTTP 和 REST 客户端,受到 Ruby rest-client 的启发

文档

  • https://github.com/go-resty/resty/

安装

go get github.com/go-resty/resty/v2

示例

1、发起GET请求

package main

import (
    "fmt"
    "strconv"
    "time"

    "github.com/go-resty/resty/v2"
)

func main() {
    client := resty.New()

    resp, _ := client.R().
        SetQueryParams(map[string]string{
            "page_no": "1",
            "limit":   "20",
            "sort":    "name",
            "order":   "asc",
            "random":  strconv.FormatInt(time.Now().Unix(), 10),
        }).
        SetHeader("Accept", "application/json").
        Get("https://httpbin.org/get")

    fmt.Println(string(resp.Body()))
}

响应结果

{
  "args": {
    "limit": "20", 
    "order": "asc", 
    "page_no": "1", 
    "random": "1716429557", 
    "sort": "name"
  }, 
  "headers": {
    "Accept": "application/json", 
    "Accept-Encoding": "gzip", 
    "Host": "httpbin.org", 
    "User-Agent": "go-resty/2.13.1 (https://github.com/go-resty/resty)", 
    "X-Amzn-Trace-Id": "Root=1-664ea2f6-429caf50119e71644d6e7fe9"
  }, 
  "origin": "127.0.0.1",
  "url": "https://httpbin.org/get?limit=20&order=asc&page_no=1&random=1716429557&sort=name"
}

2、发送POST请求

package main

import (
    "fmt"
    "strconv"
    "time"

    "github.com/go-resty/resty/v2"
)

func main() {
    client := resty.New()

    resp, _ := client.R().
        SetBody(map[string]string{
            "page_no": "1",
            "limit":   "20",
            "sort":    "name",
            "order":   "asc",
            "random":  strconv.FormatInt(time.Now().Unix(), 10),
        }).
        Post("https://httpbin.org/post")

    fmt.Println(string(resp.Body()))
}

响应结果

{
  "args": {}, 
  "data": "{\"limit\":\"20\",\"order\":\"asc\",\"page_no\":\"1\",\"random\":\"1716429749\",\"sort\":\"name\"}", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept-Encoding": "gzip", 
    "Content-Length": "78", 
    "Content-Type": "application/json", 
    "Host": "httpbin.org", 
    "User-Agent": "go-resty/2.13.1 (https://github.com/go-resty/resty)", 
    "X-Amzn-Trace-Id": "Root=1-664ea3b6-7b08b8622b633c943a22c362"
  }, 
  "json": {
    "limit": "20", 
    "order": "asc", 
    "page_no": "1", 
    "random": "1716429749", 
    "sort": "name"
  }, 
  "origin": "127.0.0.1",
  "url": "https://httpbin.org/post"
}

回复:【golang加群】加入golang开发者交流群

回复:【golang资料】获取golang面试刷题资料

图片

golang41

 

 

golang43 golang · 目录 上一篇Golang:使用jszwec/csvutil读取csv文件 阅读 159 ​ 喜欢此内容的人还喜欢   Golang:使用roylee0704/gron实现定时任务     我看过的号 Coding Big Tree   不看的原因   又一个 Go 的跨平台 GUI,像 React     非理性的程序员   不看的原因   Discord为什么从 GO 迁移到 RUST ?     coding到灯火阑珊   不看的原因   写留言       Coding Big Tree            

人划线

 

标签:resty,httpbin,get,random,20,https,go,http
From: https://www.cnblogs.com/cheyunhua/p/18212274

相关文章

  • Django视图层——2HttpReqeust对象&QueryDict对象
    HttpReqeust对象服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpRequest对象的API属性下面除非特别说明,属性都是只读的path:一个字符串,表示请求的页面的完整路径,不包含域名method:......
  • Window GDI+ API有BUG?GetBounds测不准?
    文章目录GraphicsPath的GetBounds测不准?方法一:GetBounds()实战方法二:GetBounds(Matrix)实战GraphicsPath的GetBounds测不准?实战.NET版本的问题?C++也一样,不是.NET的问题怀疑人生MiterLimit惹得祸完美结果结束语最近,在学习系统了解WindowsGDI+绘图,并尝试复现大......
  • PowerShell 命令 Get-NetConnectionProfile 来查看当前网络连接的类型。命令会列出当
    PowerShell命令Get-NetConnectionProfile来查看当前网络连接的类型。在PowerShell中执行以下命令:powershellCopyCodeGet-NetConnectionProfile这个命令会列出当前计算机上所有网络连接的详细信息,包括连接名称、接入类型(例如“域网络”、“专用网络”、“公用网络”)等。在......
  • HTTP基本原理
    HTTP基本原理URI和URLURI全程UniformResourceIdentifier即统一资源标志符。URL全程``UniformResourceLocator`即统一资源定位符。举例来讲https://github.com/favicon.ico,既是一个URI又是一个URL。favicon.ico这样一个图标资源,我们用上一行中的URI/URL指定了访问它的唯......
  • 12个Python技巧你Get了吗?
    不啰嗦,直接上干货,以下内容绝对可以帮到你哟1.列表理解列表理解可以代替丑陋的for循环来填充列表。列表理解的基本语法为:[expressionforiteminlistifconditional]一个非常简单的示例,用数字序列填充列表:[iforiinrange(10)]因为可以使用表达式,所以还可以进行......
  • php$GLOBALS['HTTP_RAW_POST_DATA']报错一例
    下载下来的代码提示HTTP_RAW_POST_DATA已经废弃,不再支持,这个报错又引起header(因为用了session)之前输出信息报错。查半天查不到原因。我找了php5.6不支持HTTP_RAW_POST_DATA,不知道php7,php8更会报什么错呢开始以为某php文件,引用了HTTP_RAW_POST_DATA,引起的,不是的,访问任意文件都报......
  • 配置Ingress支持HTTPS访问(二):使用cert-manager申请证书
    目录一.系统环境二.前言三.Let'sEncrypt和cert-manager简介四.部署cert-manager4.1安装cert-manager4.2创建clusterissuer4.3申请域名4.4Cloudflare添加站点4.5修改阿里云的名称服务器为cloudflare名称服务器4.6获取APITokens4.7创建secret存储APItoken4.8配置clusteri......
  • httpretty,一个Mock Http请求的库
    介绍:HTTPretty是一个用于在测试环境中模拟HTTP请求和响应。允许开发者在不实际进行网络调用的情况下,完全控制HTTP交互。通过拦截网络请求并提供预定义的响应。使用HTTPretty,开发者可以模拟各种网络条件,如延迟、错误和超时。安装pipinstallhttpretty使用HTTPretty模......
  • https免费证书申请和安装教程
    免费的SSL证书也是可以实现https,下面是免费证书的申请和安装教程(不限制申请数量)1访问CA创建账号登录JoySSL官网,创建一个证书管理账号,在注册账号时填写注册码230916可以获取不限量领取和技术支持权限,建议填写。免费SSL证书申请网址链接https://www.joyssl.com/certificat......
  • 使用 PHP cURL 实现 HTTP 请求类
    类结构创建一个HttpRequest类,其中包括初始化cURL的方法、不同类型的HTTP请求方法,以及一些用于处理响应头和解析响应内容的辅助方法。初始化cURL首先,创建一个私有方法initCurl,用于初始化cURL句柄并设置一些常用的选项。classHttpRequest{privatefunctionini......