我正在尝试捕获我的 java 客户端代码发出的 HTTP 请求的响应。响应的内容类型为application/pdf
。在日志中我可以看到服务器发送了响应
Object result = getRestTemplate().postForObject(urlString, formDataHttpEntity, returnClassObject, parametersMapStringString);
我收到以下 JUnit 错误:
org.springframework.web.client.RestClientException:无法提取响应:找不到适合响应类型的 HttpMessageConverter
[java.lang.Object] 和内容类型 [application/pdf]
我需要做什么才能克服这个问题?我的最终目标是把这个byte[]
并将其推送到 blob 类型的数据库表字段中
注意:我从服务器获得以下响应标头
HTTP/1.1 200 OK 缓存控制:max-age=0,必须重新验证
内容处置:附件;文件名=“执行摘要.PDF”
内容类型:应用程序/pdf
谢谢托马斯,它成功了。
我将 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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)