java如何为Postman的二进制类型的请求体构建RestTemplate?
我正在尝试使用RestTemplate调用第三方服务。但是,当我试图通过Java代码调用服务时,它抛出了BadRequest错误。 由于我不知道如何为API构建Resttemplate,因此我请求在这里获得关于如何为此类请求构建请求体的建议,同时请查看我现有的代码,并帮助我找出代码中的错误
以下是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的类型为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);
我想成功呼叫第三方实体并获得响应
# 1 楼答案
将
ResponseEntity
与byte[]
类型一起使用,而不使用内容类型: