//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的更多相关文章

  1. 第三节:总结.Net下后端的几种请求方式(WebClient、WebRequest、HttpClient)

    一. 前言 前端调用有Form表单提交,ajax提交,ajax一般是用Jquery的简化写法,在这里不再过多介绍: 后端调用大约有这些:WebCient.WebRequest.Httpclient.W ...

  2. c#利用WebClient和WebRequest获取网页源代码的比较

    前几天举例分析了用asp+xmlhttp获取网页源代码的方法,但c#中一般是可以利用WebClient类和WebRequest类获取网页源代码.下面分别说明这两种方法的实现. WebClient类获取 ...

  3. C#、.NET网络请求总结(WebClient和WebRequest)

    1.关于WebClient第三方的封装,支持多文件上传等 using System; using System.Collections.Generic; using System.Text; usin ...

  4. c#利用WebClient和WebRequest获取网页源代码

    C#中一般是可以利用WebClient类和WebRequest类获取网页源代码.下面分别说明这两种方法的实现.   WebClient类获取网页源代码   WebClient类   WebClient ...

  5. WebClient与WebRequest差异

    WebRequst的使用 WebClient和HttpWebRequst是用来获取数据的2种方式,在我的这篇数据访问(2)中主要是讲的WebClient的使用,一般而言,WebClient更倾向于“按 ...

  6. [Powershell] FTP Download File

    # Config $today = Get-Date -UFormat "%Y%m%d" $LogFilePath = "d:\ftpLog_$today.txt&quo ...

  7. 淘宝开放平台使用WebClient,WebRequest访问时的错误提示导致麻烦

    淘宝开放平台(TOP)提供OAuth2.0支持 通过C#的WebClient/WebRequest直接访问时会提示grant type is empty,这是一个非常恼人的错误,你会发现即使传了这个参 ...

  8. FTP Download File By Some Order List

    @Echo Off REM -- Define File Filter, i.e. files with extension .RBSet FindStrArgs=/E /C:".asp&q ...

  9. WebClient和WebRequest获取html代码

    HTML: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.as ...

随机推荐

  1. NSUserDefault存储类

    类要实现NSCoding协议 实现encodeWithCoder和initWithCoder方法 先把类的instance archive成NSData,然后存起来 TGTest *tt = [TGT ...

  2. iOS开发中UILocalNotification本地通知实现简单的提醒功能

    这段时间项目要求做一个类似的闹钟提醒功能,对通知不太熟悉的我,决定先用到xcode自带的本地通知试试,最终成功的实现了功能,特整理分享下. 它的表现特点: app关闭的时候也能接收和显示通知. app ...

  3. git 克隆 提交本地修改到远程方法

    最近一个项目,提交总报错 按照下面的流程就ok了 $ git clone $ git init $ cd shop $ git branch -al //查看所有分支 $ git pull origi ...

  4. git 常用口令

    版本管理 svn git   cd d 切换目录 cd www cd git git clone 一个地址 git status 获取修改的内容 git add * 上传修改的内容 git commi ...

  5. KVO 使用及原理

    KVO的基本原理大概是这样的   当一个对象被观察时, 系统会新建一个子类NSNotifying_A ,在子类中重写了对象被观察属性的 set方法,  并且改变了该对象的 isa 指针的指向(指向了新 ...

  6. pip报failed to create process

    使用pip命令的时候报failed to create process 1.错误提示窗口如下图 2.报这个错误的原因,是因为你改动了python的目录名称或位置.因为,我的电脑是安装了anaconda ...

  7. 读取Excel表格日期类型数据的时候

    用POI读取Excel数据:(版本号:POI3.7) 1.读取Excel 2.Excel数据处理: Excel存储日期.时间均以数值类型进行存储,读取时POI先判断是是否是数值类型,再进行判断转化 1 ...

  8. Sklearn,TensorFlow,keras模型保存与读取

    一.sklearn模型保存与读取 1.保存 from sklearn.externals import joblib from sklearn import svm X = [[0, 0], [1, ...

  9. HDU 5442 后缀自动机(从环字符串选定一个位置 , 时针或顺时针走一遍,希望得到字典序最大)

    http://acm.hdu.edu.cn/showproblem.php?pid=5442 题目大意: 给定一个字符串,可理解成环,然后选定一位置,逆时针或顺时针走一遍,希望得到字典序最大,如果同样 ...

  10. sql2008R2新建链接服务器。

    1:用sql新建链接服务器对象: /****** Object: LinkedServer [pad] Script Date: 10/23/2018 15:47:45 ******/ EXEC ma ...