Как превратить этот запрос POST cURL в код Java - PullRequest
0 голосов
/ 15 января 2019

У меня есть следующий запрос cURL, который я хочу превратить в код Java, чтобы выполнить его с пружиной.

Я использую его для загрузки файла, запрос cURL работает правильно.

 curl "https://mywebsite.service-now.com/api/now/attachment/file?table_name=incident&table_sys_id=fa4922f6db3ea30085a0f7871d961999&file_name=test.zip" --request POST --header "Accept:application/json" --header "Authorization:Basic cmVhbHRlc3QyOmJwb3N0QDEyMw==" --header "Content-Type: application/zip" -F "uploadFile=@test.zip"

Я буду использовать следующий API:

https://docs.servicenow.com/bundle/geneva-servicenow-platform/page/integrate/inbound_rest/reference/r_AttachmentAPI-POST.html

Я провел небольшое исследование и выяснил, что мне нужно использовать restTemplate, чтобы использовать сторонний API.

Я тоже написал это:

HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.TEXT_PLAIN);
    headers.add("Authorization", "Basic " + encodePassword());
    return headers;

(Я сделал метод encodePassword, это правильно.)

Я пробовал много других вещей, но это не работает

1 Ответ

0 голосов
/ 15 января 2019

Вы должны установить значение content-type header на MediaType.MULTIPART_FORM_DATA. Когда этот заголовок установлен, RestTemplate автоматически маршализирует данные файла вместе с некоторыми метаданными.

//Headers

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);

//parameter values
// the getTestFile( ) method generates a file on the fly and returns a FileSystemResource

MultiValueMap<String, Object> map= new LinkedMultiValueMap<>();
map.add("file", getTestFile();
...

//create request
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map, headers);

ResponseEntity<String> response = restTemplate.postForEntity( url, request , String.class );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...