在进行休息调用以触发 Jenkins 作业时收到“400 此页面需要提交表单”
Getting "400 This page expects a form submission" when making a rest call to trigger a Jenkins Job
我需要从我的 Java code.The 触发 Jenkins 作业 Jenkins API 期望 application/x-www-form-urlencoded Content-Type 并且我能够触发该作业(使用 Basic AUTH)来自 Postman Rest Client.However 当我尝试从我的 java 代码中执行相同操作时,我得到这个异常 - HttpClientErrorException: 400 This page expects a form submission:
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 已设置内容类型 header:
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);
需要注意的一件事是预期的响应是 text/html,我想将其存储在一个字符串中并解析以获取一些值。
我也有这个问题。最后,我发现如果你的作业有参数并且你调用 /build
,这会导致 400
bad request 错误。即使所有参数都有默认值,您也必须调用 /buildWithParameters
。
我需要从我的 Java code.The 触发 Jenkins 作业 Jenkins API 期望 application/x-www-form-urlencoded Content-Type 并且我能够触发该作业(使用 Basic AUTH)来自 Postman Rest Client.However 当我尝试从我的 java 代码中执行相同操作时,我得到这个异常 - HttpClientErrorException: 400 This page expects a form submission:
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 已设置内容类型 header:
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);
需要注意的一件事是预期的响应是 text/html,我想将其存储在一个字符串中并解析以获取一些值。
我也有这个问题。最后,我发现如果你的作业有参数并且你调用 /build
,这会导致 400
bad request 错误。即使所有参数都有默认值,您也必须调用 /buildWithParameters
。