为了账号安全,请及时绑定邮箱和手机立即绑定

在进行休息调用以触发 Jenkins 作业时获得“400 此页面需要表单提交”

在进行休息调用以触发 Jenkins 作业时获得“400 此页面需要表单提交”

白衣非少年 2022-09-22 15:52:47

我需要从我的 Java 代码中触发詹金斯作业。Jenkins API 需要一个应用程序/x-www-form-urlencode 化内容类型,并且我能够从 Postman Rest 客户端触发作业(使用基本 AUTH)。


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)

我正在使用 Rest 模板来调用 API。我已设置内容类型标头:


headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

并在地图中设置表单参数


MultiValueMap<String, String> map = new 

LinkedMultiValueMap<String, String>();

map.add("name", "value");

map.add("field2,"value");

map.add("json","a json string");

并将请求作为:


HttpEntity<MultiValueMap<String, String>> request = new 

HttpEntity<MultiValueMap<String, String>>(map, headers);

最后拨打电话:


 ResponseEntity<String> response = 

    restTemplate.exchange(url,HttpMethod.POST, request, String.class);

需要注意的一件事是预期的响应是文本/ html,我想将其存储在字符串中并进行解析以获取一些值。


查看完整描述

1 回答

?
慕的地10843

TA贡献1493条经验 获得超8个赞

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



查看完整回答
反对 回复 2022-09-22

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信