Как создать RestTemplate для тела запроса типа двоичного файла Почтальона? - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь вызвать стороннюю службу, используя RestTemplate. Но когда я пытаюсь вызвать службу через мой Java-код, она выдает ошибку BadRequest. Поскольку я не мог понять, как создать Resttemplate для API, я запрашиваю здесь предложения о том, как создать тело запроса для такого запроса, также просмотрите мой существующий код и помогите мне найти ошибки в код.

Как выглядит запрос почтальона: Postman view of request

Ниже приведен фрагмент кода, сформированный в Postman:

 OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("")
  .post(null)
  .addHeader("Authorization", "************")
  .addHeader("User-Agent", "PostmanRuntime/7.13.0")
  .addHeader("Accept", "*/*")
  .addHeader("Cache-Control", "no-cache")
  .addHeader("Postman-Token", "**********")
  .addHeader("Host", "**************")
  .addHeader("accept-encoding", "gzip, deflate")
  .addHeader("content-length", "160200")
  .addHeader("Connection", "keep-alive")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

// где файл имеет тип File

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

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

HttpEntity<LinkedMultiValueMap<String, Object>> requestEntity = new    
HttpEntity<LinkedMultiValueMap<String, Object>>(
                map, headers);
ResponseEntity<String> result = template.get().exchange(
                contextPath.get() + path, HttpMethod.POST, requestEntity,
                String.class);

Я хотел бы успешно вызвать третье лицо и получить ответ.

...