java - 如何为Postman的binary类型的请求体构建RestTemplate?

标签 java postman resttemplate

我正在尝试使用 RestTemplate 调用第三方服务。但是当我尝试通过 Java 代码调用该服务时,它会抛出 BadRequest 错误。 由于我无法弄清楚如何为 API 构建 Resttemplate,因此我在这里请求有关如何为此类请求构建请求正文的建议,请也查看我现有的代码并帮助我找出以下错误代码。

postman 请求的样子: 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();

//其中文件的类型为文件

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);

我想成功调用第三方实体并得到响应。

最佳答案

使用 ResponseEntitybyte[] 类型但不带内容类型:

InputStream inputStream = new ClassPathResource("myFile.jpg").getInputStream();
byte[] data = IOUtils.toByteArray(inputStream);
HttpEntity<byte[]> requestEntity = new HttpEntity<>(data);

restTemplate.exchange("url", HttpMethod.POST, requestEntity , String.class);

关于java - 如何为Postman的binary类型的请求体构建RestTemplate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56184470/

相关文章:

javascript - 如何在 Java 中使用 Selenium 获取 Canvas 元素内图像的 URL,以及如何使用 JavascriptExecutor?

java - 在线读取 XML 并存储它(使用 Java)

php - 无法使用 PHP 将视频上传到 Facebook 页面,但可以使用curl

java - 在测试 AsyncRestTemplate 时防止期望已经声明异常

java - 当抛出 RestClientException 时,如何检索 HTTP 状态代码和响应正文?

java - 原始包装器内存空间开销与泛型,在 Java 中

java - 如何调用内联类中创建的方法

google-chrome - 为什么 Postman 在启动后立即崩溃

php - POST 适用于 Postman,但不适用于 CURL

java - 如何在关机时等待 RestTemplate 响应?