我需要从我的 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,我想将其存储在字符串中并进行解析以获取一些值。
慕的地10843
相关分类