如何在 Go 中的 POST 请求中发送 JSON 字符串

2023-12-29

我尝试使用 Apiary 并制作了一个通用模板来将 JSON 发送到模拟服务器并具有以下代码:

package main

import (
    "encoding/json"
    "fmt"
    "github.com/jmcvetta/napping"
    "log"
    "net/http"
)

func main() {
    url := "http://restapi3.apiary.io/notes"
    fmt.Println("URL:>", url)

    s := napping.Session{}
    h := &http.Header{}
    h.Set("X-Custom-Header", "myvalue")
    s.Header = h

    var jsonStr = []byte(`
{
    "title": "Buy cheese and bread for breakfast."
}`)

    var data map[string]json.RawMessage
    err := json.Unmarshal(jsonStr, &data)
    if err != nil {
        fmt.Println(err)
    }

    resp, err := s.Post(url, &data, nil, nil)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("response Status:", resp.Status())
    fmt.Println("response Headers:", resp.HttpResponse().Header)
    fmt.Println("response Body:", resp.RawText())

}

这段代码无法正确发送 JSON,但我不知道为什么。每次调用中的 JSON 字符串都可以不同。我不能使用Struct为了这。


我不熟悉napping,但是使用 Golang 的net/http包工作正常(操场 http://play.golang.org/p/Qpob4Yu3wG):

func main() {
    url := "http://restapi3.apiary.io/notes"
    fmt.Println("URL:>", url)

    var jsonStr = []byte(`{"title":"Buy cheese and bread for breakfast."}`)
    req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
    req.Header.Set("X-Custom-Header", "myvalue")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    fmt.Println("response Status:", resp.Status)
    fmt.Println("response Headers:", resp.Header)
    body, _ := io.ReadAll(resp.Body)
    fmt.Println("response Body:", string(body))
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Go 中的 POST 请求中发送 JSON 字符串 的相关文章

  • 根据值匹配数组

    我使用以下代码来解析 yaml 并应得到输出为runners对象和函数build应更改数据结构并根据以下结构提供输出 type Exec struct NameVal string Executer string 这是我尝试过的 但我不知道
  • golang mongodb (mgo) 没有插入文档

    我在使用 mgo 在 mongodb 中保存 golang 结构时遇到问题 type AN Track Log struct Id bson ObjectId bson id omitempty user session id str st
  • 递归追加到切片不起作用

    我正在尝试学习 Go 但我不明白为什么递归调用堆栈末尾的这段代码返回一个空切片 有帮助吗 还tmp甚至似乎没有在调试器中注册 func main input 3 int 4 6 7 expected 6 7 4 6 7 4 6 4 7 fm
  • 使用 TestRestTemplate 和 MockRestServiceServer 时,解析异常而不是实体列表不起作用

    我有一个简单的控制器 CODE https github com joergi tryouts blob main kotlin mockrestserver src main kotlin io joergi kotlinmockrest
  • jQuery 解析 JSON

    当我尝试解析 JSON 验证的字符串时收到此错误 JSON parse 意外字符 当我删除需要转义的字符 style width 400px 时 它完美地工作 我缺少什么 在使用 parseJSON 之前是否有一种独特的方法来转义字符 va
  • JSON.stringify 对于大型对象来说非常慢

    我在 javascript 中有一个非常大的对象 大约 10MB 当我对其进行字符串化时 需要很长时间 因此我将其发送到后端并将其解析为一个对象 实际上是带有数组的嵌套对象 这也需要很长时间 但这不是我们在这个问题中的问题 问题 我怎样才能
  • Android - 下载 JSON 数据并保存到共享首选项

    我正在从 PHP 服务读取 JSON 数据 每当该 JSON 的版本发生变化时 我想将其存储在 Android 上 用新数据替换旧数据 JSON 仅用于填充 Spinner 我的问题是 JSON 有 36KB 可以将其存储在共享首选项中有一
  • 读取完 JSON 内容和意外标记后遇到的其他文本(在我的 json 中)

    我使用 JSON Net 创建的 json feed 遇到一些问题 当我尝试解析它时 它给了我 读取完 JSON 内容后遇到的附加文本 路径 第 17 行 位置 4 我尝试用以下方法验证它http json parser online fr
  • Emoji 字符无法编码为 JSON

    我有一个UITextView我称之为messageField 其中的数据messageField is POST ed 以 JSON 格式发送到服务器 当用户输入表情符号字符时 我无法将数据编码为JSON 我认为 Emoji 使用 Unic
  • PyQt:数据不可 JSON 序列化

    我是 PyQt GUI 的新手 我想获取a的数据QLineEdit文本框 为此我正在使用text 方法 我正在获取数据 但数据类型是QString 我需要将其作为 json 数据传输到服务器 为此我使用json dumps 方法 但我收到错
  • 将 JSON URL 转换为 R 数据帧

    我在将 JSON 文件 从 API 转换为 R 中的数据帧时遇到问题 例如 URL 我尝试了 S O 的一些不同建议 包括将json数据转换为R中的数据框 https stackoverflow com questions 28683769
  • 3rd party API 返回 500 错误,我的 API 应该返回什么代码

    我在基于 ZF2 Zend Framework 2 的框架中编写了一个 API 称为 Apigility 我的服务可以查询第 3 方 API 偶尔 我会收到 500 错误消息 要么是由于令牌过期 要么是其他原因 我的 API 应如何响应我的
  • Go 编程语言中的“方法需要指针接收器”

    我刚刚看到了 Go 编程语言的演示 并想尝试写几行 一切工作正常 直到我尝试在这种情况下使用界面 我该如何解决这个问题 package main import fmt type entity float32 func e entity in
  • BigQuery 如何获取 JSON 结构中的值的总和?

    我有以下查询 SELECT JSON EXTRACT json Weights as weight from select Weights blue 1 0 purple 0 0 yellow 1 0 green 1 0 as json 返
  • 如何在 Django REST Framework 中序列化“对象列表”

    我需要一个序列化器来完成这样的事情 items 12 name item 1 66 name item 2 我应该如何声明我的序列化器才能得到这样的东西 这是否是一个有效的 JSON 还是应该如下所示 items name item 1 i
  • dart中解析对象(不支持的操作:无法添加到固定长度列表)

    我有一个用户对象 当用户登录 注册时 该对象保存到云 Firestore 数据库中 因此 当用户登录时 将从数据库中检索用户对象 并且一切正常 直到我尝试对列表 usersProject 执行 添加 操作 Add the new proje
  • dapper 可以反序列化存储为文本的 json 吗?

    public class MyType public int Id get set public int MyArray get set var sql SELECT id MyArrayAsJson as MyArray var x aw
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 是否有涵盖 iPhone、Android、WebOS 和 Blackberry OS 的 jQ Touch 等效产品?

    我即将开始使用 HTML5 CSS3 和 JavaScript 为最新的智能手机编写一个 Web 应用程序 我需要的不是框架 而是像 jQuery 这样的库 我研究了 jQTouch 它非常适合 iPhone 显然也支持 Android 但
  • JBoss JAAS 自定义登录模块

    我正在尝试使用自定义JAAS托管的基于 Web 的应用程序的身份验证模块JBoss 5 1 0 GA 所以一切似乎都工作正常 直到用户数量增加并且会话 它认为 开始变得混合 我使用自定义 JAAS 的原因是因为自定义身份验证后端以及需要传回
  • PHP 5 反射 API 性能

    我目前正在考虑在我自己的 MVC Web 框架中使用 Reflection 类 主要是 ReflectionClass 和 ReflectionMethod 因为我需要自动实例化控制器类并调用它们的方法 而无需任何所需的配置 约定优于配置
  • Telegram 机器人键盘通过 JSON 发送

    我正在使用 MS Bot 框架 我想向用户发送自定义键盘 因此我尝试使用以下 JSON 回复消息 public async Task
  • Django 查询集上的 Count() 与 len()

    在 Django 中 鉴于我有QuerySet我要迭代并打印结果 计算对象的最佳选择是什么 len qs or qs count 另外考虑到在同一迭代中计算对象也不是一种选择 虽然Django 文档 https docs djangopro
  • 如何在 Django 中实现 Northwind

    我正在尝试使用 Django admin 在 MySQL 中实现 Northwind 数据库模型来显示数据 有人知道如何从原始模型中 干净 地做到这一点吗 是否有任何功能实现可供下载 模型 管理 接下来是完全未经尝试的程序 不确定你所说的
  • 实体框架 6 Code First int Identity 列值第一行为零

    首次执行 update database 命令以使用种子数据填充数据库后 发现所有 int Id 列均以零 0 开头 而不是预期的一 1 在 Configuration cs 中的 Seed 方法顶部为每个实体 表添加了以下 2 行代码 注
  • 如何使用 VBA 将“整个”DAO 记录集插入表中

    我有一个 DAO 记录集 可以很好地创建 我可以将记录从该集传输到表中 这是逐行完成的并且效果很好 但是我一次传输大量数据 因此这可能需要很长时间一行一行 有没有一种方法可以一次性传输整个记录集 而不是逐行传输 请参阅下面的当前使用的代码
  • GitKraken 不允许我在 GitLab 上打开我的私有存储库

    所以 除了GitKraken 不允许我从 GitHub 上的私人存储库进行克隆 https stackoverflow com questions 41945280 gitkraken wont let me clone from a pr
  • 如何在osx中​​创建虚拟键盘?

    我想在 osx 中创建一个虚拟键盘 是否可以 我的意思是我可以制作一个程序来提供与真实键盘相同的信号吗 这种键盘的示例是屏幕键盘或键盘查看器 顺便说一句 它是否有必要的界面 我应该从多低开始 我应该制作一个设备驱动程序吗 虚拟 无线 键盘
  • 为什么 printf() 是一个不纯函数?

    据我所知 不纯函数是那些在使用相同参数调用时并不总是返回相同值的函数 我一定遗漏了一些东西 或者可能是错误的 如果我是的话 请纠正我 那么为什么是printf 被认为是不纯函数吗 纯 函数lacks 副作用 too 换句话说 无论你调用多少
  • 如何使用 pytest 对测试失败采取行动?

    我正在使用 pytest 我想收集 保存一些数据 以便对测试失败进行事后分析 我可以写一个teardown method 但我没有看到在这种情况下获得测试状态的方法 是否可以对任何测试采取行动 或assertion 失败 实施一个pytes
  • 从超过 max_retries 失败的任务中恢复

    我尝试异步使用 Web 服务 因为它最多需要 45 秒才能返回 不幸的是 这个 Web 服务也有些不可靠 并且可能会引发错误 我已经设置了django celery并让我的任务执行 这工作正常 直到任务失败为止max retries 这是我
  • NHibernate 抛出会话已关闭

    我在风中拍打 所以我想我应该在这里问 请让我知道这是否是显而易见的并且之前已得到回答 我正在构建一个 MVC 3 网站 当我与一个用户一起运行它时 我可以单击页面来运行它 该网站运行良好 然而 如果我疯狂地点击刷新 最终我会点击 会话已关闭
  • 如何在 Amazon ElasticBeanstalk 上安装的 Java 应用程序上将 http 请求重定向到 https

    我正在使用 Amazon ElasticBeanstalk 进行 Java EE Web 应用程序部署 我希望我的应用程序只能是 https 因此我在 ElasticLoadbalancer 上配置了 SSL 证书 我也将 web xml
  • 在 GitHub 组织中的所有 Git 存储库中搜索模式

    我有一个 GitHub 组织 该组织中有大约 250 个属于不同团队的存储库 我拥有组织帐户的管理员访问权限 有没有一种方法可以在所有这些存储库中搜索模式 最好是通过 GitHub 的 Web 界面 我们计划更新一些 jar文件位置 但我们
  • boost序列化1.5.5遇到Nan和Inf时崩溃

    看来boost序列化无法从基于文本的档案中恢复Nan和inf的值 除非您处理该程序 否则该程序将终止archive exception在这种情况下 有什么解决办法吗 图书馆的作者有话要说 http lists boost org boost
  • 网站未使用 blogdown 和 Hugo 进行更新

    我知道这个问题可能会因为导致错误的代码重现性不足而被否决 但我对这个错误感到非常惊讶 我什至不知道从哪里开始足够清楚地解释它 因此我提前道歉 此问题已在两台不同的计算机上发生过两次 我使用 Hugo academic 主题在 R Studi
  • 没有 freetds.conf 的 FreeTds

    我可以在没有 freetds conf 的情况下运行 FreeTds API 吗 C C 据我记得 可以在没有旧的 interfaces 文件的情况下使用Sybase ctlib None
  • 如何在 Go 中的 POST 请求中发送 JSON 字符串

    我尝试使用 Apiary 并制作了一个通用模板来将 JSON 发送到模拟服务器并具有以下代码 package main import encoding json fmt github com jmcvetta napping log net