服务端:
@RequestMapping(value = "/lsj", method = {RequestMethod.POST, RequestMethod.GET}, produces = {"text/plain;charset=UTF-8"})
@ResponseBody
public String searchLsjDzzz(String jsonStr,HttpServletResponse httpServletResponse) {
byte[] dzzz = null;
//下载PDF
httpServletResponse.setHeader("Content-Disposition", "attachment;Filename=" + UUID.randomUUID()+".pdf");
OutputStream outputStream = httpServletResponse.getOutputStream();
outputStream.write(dzzz);
outputStream.close();
return "";
}
客户端:
public byte[] requestByGetToByte(String url,String charset){
if (url == null || "".equals(url))
{
log.error("request url is empty.");
return null;
}
HttpClient httpClient = CustomHttpClient.GetHttpClient();
HttpGet get = new HttpGet(url);
get.setHeader("Content-Type", "text/html;charset="+charset);
HttpResponse resp = null;
try
{
// 发起交易
resp = httpClient.execute(get);
// 响应分析
HttpEntity entity = resp.getEntity();
byte[] bytes= EntityUtils.toByteArray(entity);
return bytes;
} catch (ConnectTimeoutException cte){
log.error(cte.getMessage(), cte);
return null;
} catch (SocketTimeoutException cte){
log.error(cte.getMessage(), cte);
return null;
} catch (Exception e){
log.error(e.getMessage(), e);
return null;
}finally{
try {
if(resp!=null){
resp.getEntity().getContent().close();
}
} catch (IllegalStateException e) {
log.error(e.getMessage(), e);
} catch (IOException e) {
log.error(e.getMessage(), e);
}
}
}
来源:https://www.cnblogs.com/zuferj115/p/7580664.html
该博客展示了如何实现HTTP接口来处理客户端的GET和POST请求,特别是在服务端通过@RequestMapping注解处理请求,返回带有Content-Disposition头的PDF文件,触发浏览器进行下载。客户端使用HttpClient执行HTTP请求,获取并返回服务器响应的字节数组。
1713

被折叠的 条评论
为什么被折叠?



