ByteArrayHttpMessageConverter

ByteArrayHttpMessageConverter

我正在 try catch 由我的Java客户端代码发出的HTTP请求的响应。响应的内容类型为application/pdf。在日志中,我可以看到服务器在以下位置发送了响应

Object result = getRestTemplate().postForObject(urlString, formDataHttpEntity, returnClassObject, parametersMapStringString);

并且出现以下JUnit错误:



我要怎么做才能克服这个问题?我的最终目标是将其放入byte[]并将其推送到blob类型的DB表字段中

注意:我从服务器获取以下响应头

最佳答案

谢谢托马斯,它的工作。

我将ByteArrayHttpMessageConverter添加到RestTemplate,并且可以正常工作。

我添加的代码:

ByteArrayHttpMessageConverter byteArrayHttpMessageConverter = new ByteArrayHttpMessageConverter();

List<MediaType> supportedApplicationTypes = new ArrayList<>();
MediaType pdfApplication = new MediaType("application","pdf");
supportedApplicationTypes.add(pdfApplication);

byteArrayHttpMessageConverter.setSupportedMediaTypes(supportedApplicationTypes);
List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
messageConverters.add(byteArrayHttpMessageConverter);
restTemplate = new RestTemplate();
restTemplate.setMessageConverters(messageConverters);

Object result = getRestTemplate().getForObject(url, returnClass, parameters);
byte[] resultByteArr = (byte[])result;

10-06 16:02