Csharp:WebClient and WebRequest use http download file
//Csharp:WebClient and WebRequest use http download file
//20140318 塗聚文收錄
string filePath = "20140302.pdf";
string fileName = "http://www.dusystem.com/3.pdf"; //1出现找不到文件 filePath
//string headerValue = (Request.UserAgent.ToLower().Contains("msie"))? string.Format("attachment; filename=\"{0}\"", Uri.EscapeDataString(fileName)): string.Format("attachment; filename=\"{0}\"", fileName); //for Firefox, Chrome, Safari, Opera
//Response.Clear();
//Response.ContentType = "text/plain";
//Response.AddHeader("Content-Disposition", headerValue);
//Response.TransmitFile(filePath);
//Response.End(); //2: 有效 WebException ex
//System.Net.WebClient net = new System.Net.WebClient();
//string link = fileName;
//Response.ClearHeaders();
//Response.Clear();
//Response.Expires = 0;
//Response.Buffer = true;
//Response.AddHeader("Accept-Language", "utf-8");
//Response.AddHeader("Content-Disposition", "Attachment;FileName=" + System.Web.HttpUtility.UrlEncode(link, System.Text.Encoding.UTF8));
//Response.ContentType = "APPLICATION/octet-stream";
//Response.BinaryWrite(net.DownloadData(link));
//Response.End(); //3:有效,但文件是空
//string dir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
//string myFileName = dir + @"\213.pdf";
//HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fileName); // //request.MaximumResponseHeadersLength = 40000;
//request.Timeout = 20000;
//request.Credentials = CredentialCache.DefaultCredentials;
//HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//Stream receiveStream = response.GetResponseStream();
//StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); //using (StreamWriter sw = new StreamWriter(myFileName, false, Encoding.UTF8))
//{
// sw.Write(readStream.ReadToEnd());
// sw.Flush();
// sw.Close(); //} //4。有效
//byte[] result;
//byte[] buffer = new byte[4096];
//string link = fileName;
//WebRequest wr = WebRequest.Create(fileName);
//WebResponse response = wr.GetResponse();
//Stream responseStream = response.GetResponseStream();
//MemoryStream memoryStream = new MemoryStream();
//Response.AddHeader("Accept-Language", "utf-8");
//Response.AddHeader("Content-Disposition", "Attachment;FileName=" + System.Web.HttpUtility.UrlEncode(link, System.Text.Encoding.UTF8));
//Response.ContentType = "APPLICATION/octet-stream";
//int count = 0;
//do
//{
// count = responseStream.Read(buffer, 0, buffer.Length);
// memoryStream.Write(buffer, 0, count);
// Response.BinaryWrite(buffer);
// //Response.OutputStream.Write(buffer,0,count);
//}
//while (count != 0);
//result = memoryStream.ToArray(); //5。有效
string dir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
string fullFileName = dir + @"\213.pdf";
HttpWebRequest hRequest = (HttpWebRequest)WebRequest.Create(fileName);
WebResponse response = hRequest.GetResponse();
using (response = (HttpWebResponse)hRequest.GetResponse())
{
/*Download the file to the fullFileName location */
Stream streamResponse = response.GetResponseStream();
if (streamResponse != null)
{
byte[] inBuf = new byte[response.ContentLength];
int bytesToRead = System.Convert.ToInt32(inBuf.Length);
int bytesRead = 0;
while (bytesToRead > 0)
{
int n = streamResponse.Read(inBuf, bytesRead, bytesToRead);
if (n == 0)
{
break;
}
bytesRead += n;
bytesToRead -= n;
} FileStream fstr = new FileStream(fullFileName, FileMode.OpenOrCreate, FileAccess.Write);
fstr.Write(inBuf, 0, bytesRead);
streamResponse.Close();
streamResponse.Dispose();
fstr.Close();
fstr.Dispose();
}
}
Csharp:WebClient and WebRequest use http download file的更多相关文章
- 第三节:总结.Net下后端的几种请求方式(WebClient、WebRequest、HttpClient)
一. 前言 前端调用有Form表单提交,ajax提交,ajax一般是用Jquery的简化写法,在这里不再过多介绍: 后端调用大约有这些:WebCient.WebRequest.Httpclient.W ...
- c#利用WebClient和WebRequest获取网页源代码的比较
前几天举例分析了用asp+xmlhttp获取网页源代码的方法,但c#中一般是可以利用WebClient类和WebRequest类获取网页源代码.下面分别说明这两种方法的实现. WebClient类获取 ...
- C#、.NET网络请求总结(WebClient和WebRequest)
1.关于WebClient第三方的封装,支持多文件上传等 using System; using System.Collections.Generic; using System.Text; usin ...
- c#利用WebClient和WebRequest获取网页源代码
C#中一般是可以利用WebClient类和WebRequest类获取网页源代码.下面分别说明这两种方法的实现. WebClient类获取网页源代码 WebClient类 WebClient ...
- WebClient与WebRequest差异
WebRequst的使用 WebClient和HttpWebRequst是用来获取数据的2种方式,在我的这篇数据访问(2)中主要是讲的WebClient的使用,一般而言,WebClient更倾向于“按 ...
- [Powershell] FTP Download File
# Config $today = Get-Date -UFormat "%Y%m%d" $LogFilePath = "d:\ftpLog_$today.txt&quo ...
- 淘宝开放平台使用WebClient,WebRequest访问时的错误提示导致麻烦
淘宝开放平台(TOP)提供OAuth2.0支持 通过C#的WebClient/WebRequest直接访问时会提示grant type is empty,这是一个非常恼人的错误,你会发现即使传了这个参 ...
- FTP Download File By Some Order List
@Echo Off REM -- Define File Filter, i.e. files with extension .RBSet FindStrArgs=/E /C:".asp&q ...
- WebClient和WebRequest获取html代码
HTML: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.as ...
随机推荐
- curl命令上传下载文件
下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://www.centos.org 通过-o/-O选项保存下载的文件到指定的文件中: -o:将文件保存为命令行中指定的文件 ...
- [转] 深入理解Java G1垃圾收集器
[From] https://www.cnblogs.com/ASPNET2008/p/6496481.html 深入理解Java G1垃圾收集器 本文首先简单介绍了垃圾收集的常见方式,然后再分析了G ...
- eclipse svn 报错 文件夹已经不存在
最近做项目用eclipse 遇到个很奇怪的问题,前几天svn还是可以用的,突然一下子不能用了,于是网上各种找解决方法啊,终于问题解决了,总结一下. 查看svn报错信息: svn number is l ...
- find命令用法集锦
find命令用法: 01--过滤日志find -name "catelina.*.out"|xargs -f |grep '关键字' 02 -忽略一个目录或者多个目录find ./ ...
- nginx响应码
ngx.status = ngx.HTTP_CONTINUE (100) (first added in the v0.9.20 release)ngx.status = ngx.HTTP_SWITC ...
- Python - 购物车代码 (账户登陆,用户个人清单存取,重要信息高亮显示)
需要掌握open函数. 清单存取时,需要注意编码问题,直接在读取和存储时加上encoding = 'utf - 8' 可以解决gbk - unicode转化时出现的乱码问题. 码农一定要坚强,这份代码 ...
- CommandBehavior.CloseConnection有何作用
其用在ExecuteReader(c)中,返回对象前不能关闭数据库连接,须用CommandBehavior.CloseConnection: 这是一个关于实际知识点的问题,面试官考查的是应聘者数据库访 ...
- 基础selenium+Python(定位、等待、打印)
1.第一个脚本 # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser.get(&q ...
- 关于table-layout的用法
定义:tableLayout 属性用来显示表格单元格.行.列的算法规则. 自动表格布局:auto(默认) 在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的. 此算法有时会较慢,这是由 ...
- unity物理学材质Physic Material
物理材料 切换到脚本 在物理学材料是用来调整摩擦和碰撞对象的反弹效应. 要创建物理材质,请从菜单栏中选择“ 资源”>“创建”>“物理材质 ”.然后将“物理材质”从“项目视图”拖动到场景 ...