如何传递原始数据以发布请求

时间:2018-10-20 14:19:00

标签: api go postman

我遇到了一些奇怪的问题,我正在与邮递员发送请求(使用原始正文)并获得正确的响应,但是当我用go发出请求时,我会得到不同的响应。

我尝试过:

/resend/

但是响应错误,也尝试使用值

url := "http://example.com"
payload := strings.NewReader("key=value")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("content-type", "application/x-www-form-urlencoded")
req.Header.Add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
req.Header.Add("cache-control", "no-cache")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

但是仍然收到错误的响应,有没有办法在Go中模拟邮递员的原始方法?

邮递员会自动将cookie添加到我的请求中,只是添加了cookie标头,问题已解决

1 个答案:

答案 0 :(得分:0)

这里是邮递员的提示:单击发送按钮正下方的代码按钮/链接,在cookie链接旁边,然后从弹出窗口中,您可以选择哪种语言来获取将要执行的邮递员代码的输出,Go是一个在这里选择

以您的示例为例,我认为您需要做的是删除明确设置<?php header('X-Frame-Options:SAMEORIGIN',true);?> 使其与邮递员中的原始邮件响应相匹配的行