您可以使用
execute这种低级 *** 作。在此代码段中,我使用了Commons
IO的
copy方法来复制输入流。您需要
HttpMessageConverterExtractor针对期望的响应类型自定义。
final InputStream fis = new FileInputStream(new File("c:\autoexec.bat")); // or whateverfinal RequestCallback requestCallback = new RequestCallback() { @Override public void doWithRequest(final ClientHttpRequest request) throws IOException { request.getHeaders().add("Content-type", "application/octet-stream"); IOUtils.copy(fis, request.getBody()); }};final RestTemplate restTemplate = new RestTemplate();SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();requestFactory.setBufferRequestBody(false); restTemplate.setRequestFactory(requestFactory); final HttpMessageConverterExtractor<String> responseExtractor = new HttpMessageConverterExtractor<String>(String.class, restTemplate.getMessageConverters());restTemplate.execute("http://localhost:4000", HttpMethod.POST, requestCallback, responseExtractor);
(感谢巴兹(Baz)指出您需要致电
setBufferRequestBody(false),否则将导致败笔)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)