http包发送post请求,调用jenkins接口,返回400状态码(this page expects a form submission)

Liz8202 · · 1335 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

1. 运行环境 go 1.19.1 windows/amd64 2. 问题描述 通过 http 提供的 PostForm,NewRequest,Post 方法发送 post 请求,调用 jenkins pipeline 的 input 输入处理接口,始终调用无法成功,返回结果状态码为 400,消息体提示 this page expects a form submission。同样的参数和 URI 通过 curl 命令,接口可以正常调用并返回 200 状态码 CURL 命令(调用结果和返回状态码都正常) ``` curl -s -w "%{http_code}\n" -X POST 'http://liuzhichao:88cd35a7db9b614818be840370d1cef3@172.16.99.11:8080/job/dwglptyq/job/sc-cpjob/23/wfapi/inputSubmit?inputId=Inputap' -d 'json={"parameter":[{"name":"%E9%AA%8C%E8%AF%81%E7%A0%81","value":"10862"}]}' ![image.png](https://static.golangjob.cn/230309/647ce5ab4ed8d3614c425158aec2bf62.png) ``` go 的 http 包(无法调用到接口,返回错误) ``` // 对于http强求,获取请求参数 if httpMethod == "post" { urlValues := url.Values{} for _,m := range params { fmt.Println("key:" + m["name"]) fmt.Println("value:" + m["value"]) urlValues.Set(m["name"],m["value"]) } resp, _ := http.PostForm(requestUrl,urlValues) // resp, _ := http.PostForm(requestUrl,url.Values{"验证码":{"123456"}}) defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) ``` ![image.png](https://static.golangjob.cn/230309/b61aca08551ba56168cda2613becd498.png)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1335 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传