首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在发出rest调用以触发Jenkins作业时,获取"400此页面期望表单提交“

在发出rest调用以触发Jenkins作业时,获取"400此页面期望表单提交“
EN

Stack Overflow用户
提问于 2019-04-05 10:21:36
回答 1查看 6.8K关注 0票数 21

我需要从我的java code.The Jenkins API中触发一个Jenkins作业,它需要一个应用程序/x-www-表单-urlencoded,并且当我尝试从我的Java代码中得到同样的异常时,我能够从Postman Client.However中触发这个作业(使用Basic AUTH),当我尝试从我的java代码中得到这个异常时,这个页面需要一个表单提交:

代码语言:javascript
运行
复制
Exception while triggerring jenkins {} 400 This page expects a form submission
org.springframework.web.client.HttpClientErrorException: 400 This page expects a form submission
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:108)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:708)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:661)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:621)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:539)

我使用RestTemplate调用api.I设置了Content:

代码语言:javascript
运行
复制
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

并在地图中设置表单参数。

代码语言:javascript
运行
复制
MultiValueMap<String, String> map = new 
LinkedMultiValueMap<String, String>();
map.add("name", "value");
map.add("field2,"value");
map.add("json","a json string");

请求如下:

代码语言:javascript
运行
复制
HttpEntity<MultiValueMap<String, String>> request = new 
HttpEntity<MultiValueMap<String, String>>(map, headers);

最后,作出如下呼吁:

代码语言:javascript
运行
复制
 ResponseEntity<String> response = 
    restTemplate.exchange(url,HttpMethod.POST, request, String.class);

需要注意的一点是,期望的响应是text/html,我希望将其存储在字符串中并进行解析以获得一些值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 19:19:26

我也有这个问题。最后,我发现如果作业有参数并调用/build,则会导致400错误请求。即使所有参数都有默认值,也必须调用/buildWithParameters

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55533294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档