HttpWebRequest 请求PDF文件,并下载到本地
2016-04-23 18:46
716 查看
private void OutPDFStream(HttpContext context, string sPDF_Url)
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(sPDF_Url);
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
StreamReader responseStream = new StreamReader(wr.GetResponseStream(), Encoding.UTF8);
int length = (int)wr.ContentLength;
byte[] bs = new byte[length];
HttpWebResponse response = wr as HttpWebResponse;
Stream stream = response.GetResponseStream();
//读取到内存
MemoryStream stmMemory = new MemoryStream();
byte[] buffer1 = new byte[length];
int i;
while ((i = stream.Read(buffer1, 0, buffer1.Length)) > 0)
{
stmMemory.Write(buffer1, 0, i);
}
byte[] arraryByte = stmMemory.ToArray();
stmMemory.Close();
context.Response.Clear();
//写入到本地
context.Response.AddHeader("Content-Disposition", "attachment;FileName=out.pdf");
context.Response.ContentType = "application/pdf";
context.Response.AddHeader("Content-Length", length.ToString());
context.Response.OutputStream.Write(arraryByte, 0, arraryByte.Length);
context.Response.End();
}
}
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(sPDF_Url);
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
StreamReader responseStream = new StreamReader(wr.GetResponseStream(), Encoding.UTF8);
int length = (int)wr.ContentLength;
byte[] bs = new byte[length];
HttpWebResponse response = wr as HttpWebResponse;
Stream stream = response.GetResponseStream();
//读取到内存
MemoryStream stmMemory = new MemoryStream();
byte[] buffer1 = new byte[length];
int i;
while ((i = stream.Read(buffer1, 0, buffer1.Length)) > 0)
{
stmMemory.Write(buffer1, 0, i);
}
byte[] arraryByte = stmMemory.ToArray();
stmMemory.Close();
context.Response.Clear();
//写入到本地
context.Response.AddHeader("Content-Disposition", "attachment;FileName=out.pdf");
context.Response.ContentType = "application/pdf";
context.Response.AddHeader("Content-Length", length.ToString());
context.Response.OutputStream.Write(arraryByte, 0, arraryByte.Length);
context.Response.End();
}
}
相关文章推荐
- http://www.cnblogs.com/Matrix54/archive/2012/05/03/2481260.html
- Android网络开源库-Retrofit(三) 批量上传及上传进度监听
- 深入浅出——搞懂卷积神经网络误差分析(一)
- TCP/UDP 伪首部
- linux下安装Apache(https) 服务器证书安装配置指南
- 配置整理——ubuntu下配置网络抓包库libpcap
- HttpClient + Jsoup 网页数据抓取
- iOS手机信号网络监听
- 什么是HTTP协议??
- iOS网络编程 - 4
- 计算机网络自顶向下方法之一一一第二章之一
- 网络制式(Duplex Mode)
- iOS网络编程 - 3
- swift 网络请求&json解析
- TCP是如何保证包的顺序传输?
- swift 网络请求&json解析
- Linux中TCP wrapper的使用
- Linux中TCP wrapper的使用
- NFS网络文件共享服务的配置和排错总结
- 互联网时代广告计费方式太原网络营销师提供你参考