转载自:Response 输出方式,输出字符和文件流_ZxmSeed
private void downloadFile(HttpServletRequest request, HttpServletResponse response)
throws Exception {
String wechatUrl = request.getParameter("wechatUrl");
String access_token = request.getParameter("access_token");
String mediaId = request.getParameter("media_id");
System.out.println("===>mediaId:" + mediaId);
StringBuffer sb = new StringBuffer();
sb.append(wechatUrl).append("?access_token=").append(access_token).append("&media_id=").append(mediaId);
URL _url = new URL(sb.toString());
HttpURLConnection conn = (HttpURLConnection) _url.openConnection();
// 连接超时
conn.setConnectTimeout(25000);
// 读取超时 --服务器响应比较慢,增大时间
conn.setReadTimeout(25000);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "Keep-Alive");
conn.setRequestProperty("User-Agent", HttpRequest.DEFAULT_USER_AGENT);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();
String ds = conn.getHeaderField("Content-disposition");
response.setHeader("Content-disposition", ds);
OutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
InputStream istram = conn.getInputStream();
int read;
while ((read = istram.read()) != -1) {
outputStream.write(read);
}
outputStream.flush();
} catch (Exception e) {
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (conn != null) {
conn.disconnect();
}
}
}
该博客介绍如何通过HttpServletRequest和HttpServletResponse实现从微信获取媒体文件,涉及URL构造、连接超时设置、数据传输及响应头处理。
2878

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



