Получение «400 Эта страница ожидает отправки формы» при выполнении вызова покоя для запуска задания Дженкинса - PullRequest
2 голосов
/ 05 апреля 2019

Мне нужно запустить задание Jenkins из моего кода Java. API Jenkins ожидает код содержимого типа приложения / x-www-form-urlencoded, и я могу запустить задание (используя Basic AUTH) из Postman Rest Client.Однако, когда я пытаюсь сделать то же самое из своего кода Java, я получаю это исключение - HttpClientErrorException: 400 На этой странице ожидается отправка формы:

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. Я установил 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, который я хочу сохранить в строке и проанализировать, чтобы получить некоторые значения.

...