登录
首页 >  Golang >  Go问答

如何发送包含 URL 参数和 JSON 正文的 POST?

来源:stackoverflow

时间:2024-04-06 11:00:35 114浏览 收藏

今天golang学习网给大家带来了《如何发送包含 URL 参数和 JSON 正文的 POST?》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我找到了如何发送带有 url 参数的 post,或者如何发送带有 json 正文的 post,但我不知道如何将它们组合在一起(同时包含带有参数的 url 和 json 正文的请求) .

下面的代码(不正确)显示了我正在寻找的组合。我可以使用 bytes.newbuffer(jsonstr)strings.newreader(parm.encode()),但不能同时使用两者。

package main

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

func main() {
    var jsonStr = []byte(`{"title":"my request"}`)
    parm := url.Values{}
    parm.Add("token", "hello")
    req, err := http.NewRequest("POST", "https://postman-echo.com/post", bytes.NewBuffer(jsonStr), strings.NewReader(parm.Encode()))
    if err != nil {
        panic(err)
    }
    req.Header.Set("Content-Type", "application/json")
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

}

如何使用所有组件构建完整的 post 调用?


正确答案


使用唯一的 json 作为请求正文,并应用如下 url 参数:

req.URL.RawQuery = parm.Encode()

来自Go doing a GET request and building the Querystring

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>