我有一个REST服务,当通过以XML文件作为参数的POST调用调用文件时,它会返回一个文件。我的目标是使用客户端访问服务(java类中的简单httppost调用(。到目前为止,我正在执行以下操作:
DefaultHttpClient defaultHtppclient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost("resturl");
StringEntity input = new StringEntity("input xml file ");
input.setContentType("application/xml");
postRequest.setEntity(input);
HttpResponse response = defaultHtppclient.execute(postRequest);
当我使用以下方法转换响应时,我正在获取文件的内容:
String content = EntityUtils.toString(response.getEntity());
但是我正在努力从java类下载文件。当我在火狐 HTTP 资源测试中触发 URL 时。我得到的标题是:
Content-Disposition: attachment; filename = filenameFromserver
Content-Type: application/octet-stream
有没有办法从客户端下载这样的文件?
您正在进行的调用需要应用程序/xml,服务器正在向您发送八位字节流。
您必须读取它发送给您的字节,并将它们写出到您想要的文件中。 我建议四处搜索如何在八位字节流中阅读。
有关示例,请查看这篇文章:
从 URL 读取二进制文件通信