当前位置: 首页 > 面试题库 >

使用http.NewRequest的POST数据失败

云开诚
2023-03-14
问题内容

我正在尝试使用将数据从一个golang服务传递到另一服务http.NewRequest()。为此,我使用了以下代码:

        httpClient := http.Client{}

        userserviceUrl := "http://user:7071/checkemail"

        form := url.Values{}
        form.Set("uuid", uuid)
        form.Set("email", email)

        b := bytes.NewBufferString(form.Encode())
        req, err := http.NewRequest("POST", userserviceUrl, b)
        if err != nil {
            log.Println(err)
        }

        opentracing.GlobalTracer().Inject(
            validateEmailSpan.Context(),
            opentracing.HTTPHeaders,
            opentracing.HTTPHeadersCarrier(req.Header))

        resp, err := httpClient.Do(req)
        //_, err = http.PostForm("http://user:7071/checkemail", url.Values{"uuid": {uuid}, "email": {email}})

        if err != nil {
            log.Println("Couldnt verify email address user service sends an error : ", err)
        }
        defer resp.Body.Close()

当我尝试转储从用户服务收到的数据时:

    req.ParseForm()
    log.Println("Form values : ", req.Form)

我空了 map[]

在这里,我只是尝试将跟踪范围插入到我的请求中,以前我曾经使用http.PostForm()过传递数据,它可以完美工作。但是我不知道该tracing怎么做


问题答案:

从ParseForm的文档中:

[…]当Content-Type不是application / x-www-form-
urlencoded时,不读取请求主体,并且r.PostForm初始化为一个非null的空值。

PostForm自动设置Content-Type,但是现在您必须自己进行设置:

req, err := http.NewRequest("POST", userserviceUrl, strings.NewReader(form.Encode()))
// TODO: handle error
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")


 类似资料:
  • 问题内容: 我想向API发送POST请求,以将我的数据作为内容类型发送。由于我需要管理请求标头,因此我正在使用该方法来创建请求。对于此POST请求,我将数据查询附加到URL上,并将正文保留为空,如下所示: 当我回应时,我总是得到。我相信问题取决于我的请求,API无法理解我要发布的有效负载。我知道类似的方法,但不确定在这种情况下如何使用它。也许我缺少一些其他的Header,也许有更好的方法使用参数将

  • 问题内容: 我想使用JavaScript中的XMLHttpRequest发送一些数据。 说我的HTML形式如下: 如何在JavaScript中使用XMLHttpRequest编写等效项? 问题答案: 下面的代码演示了如何执行此操作。

  • 本文向大家介绍django中使用POST方法获取POST数据,包括了django中使用POST方法获取POST数据的使用技巧和注意事项,需要的朋友参考一下 在django中获取post数据,首先要规定post发送的数据类型是什么。 1.获取POST中表单键值数据 如果要在django的POST方法中获取表单数据,则在客户端使用JavaScript发送POST数据前,定义post请求头中的请求数据类

  • 问题内容: 我正在尝试使用go将图像从计算机上传到网站。通常,我使用bash脚本将文件和密钥发送到服务器: 它工作正常,但我正在尝试将此请求转换为我的golang程序。 http://matt.aimonetti.net/posts/2013/07/01/golang-multipart-file-upload- example/ 我尝试了此链接和许多其他链接,但是,对于我尝试的每个代码,服务器的

  • 本文向大家介绍IOS  AFNetworking的Post失败及requestSerializer的正确使用,包括了IOS  AFNetworking的Post失败及requestSerializer的正确使用的使用技巧和注意事项,需要的朋友参考一下 IOS  AFNetworking的Post失败及requestSerializer的正确使用 前言: 最近接手一个项目,因为之前的项目里面POST

  • 问题内容: 我正在使用PHP curl进行发布,由于某种原因,我无法成功发布该表单。 当我尝试在帖子中使用相同功能时,它可以工作,但不适用于PHP。 问题答案: 如果您想使用和数据,似乎您的数据应采用格式