我需要从我的java code.The Jenkins API中触发一个Jenkins作业,它需要一个应用程序/x-www-表单-urlencoded,并且当我尝试从我的Java代码中得到同样的异常时,我能够从Postman Client.However中触发这个作业(使用Basic AUTH),当我尝试从我的java代码中得到这个异常时,这个页面需要一个表单提交:
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:
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,我希望将其存储在字符串中并进行解析以获得一些值。
发布于 2021-02-16 19:19:26
我也有这个问题。最后,我发现如果作业有参数并调用/build
,则会导致400
错误请求。即使所有参数都有默认值,也必须调用/buildWithParameters
。
https://stackoverflow.com/questions/55533294
复制相似问题