//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. http错误状态码

    http://www.kaiyuanba.cn/html/1/131/226/4258.htm 状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息--表示请求已接收 ...

  2. Kettle 解决数据锁的问题(事务(进程 ID 51)与另一个进程被死锁在 锁 资源上)

    1.Kettle做了一个作业, 执行的时候问题发生在步骤2和步骤3之间,也就是步骤2还未完全执行完的时候,步骤3就要更新步骤2插入的数据,造成死锁.(我的理解是既然都分开作业了,那么每个作业都是一个单 ...

  3. day0201

    #1.使用while循环输入 1 2 3 4 5 6 8 9 10'''count = 0while count < 10: count += 1 # count = count + 1 if ...

  4. WINDOWS SERVER 2012标准版密钥

    Windows Server 2012 R2 安装密钥(只适用安装,不支持激活) 标准版 = NB4WH-BBBYV-3MPPC-9RCMV-46XCB MMPXK-NBJDQ-JPM34-WX3FM ...

  5. L2-2 小字辈 (25 分)

    本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号.随后第二行 ...

  6. Hystrix - 踩坑回忆

    1.Unable to connect to Command Metric Stream 异常 Finchley版本使用Hystrix存在此问题.网上常规解决思路: @Bean public Serv ...

  7. supervisor使用小记

    最近使用supervisor部署爬虫,百度了很多,磕磕绊绊自己也算是用起来了,以下是整理的使用情况. 第一步: 下载安装supervisor 使用的ubuntu16.04,直接 sudo apt-ge ...

  8. ribbon 收起 最小化 导航条 选项卡 navBarControl 隐藏

    //设置隐藏导航条 this.ribbonControl.Minimized = true; 正解 //设置navBarControl隐藏 navBarControl.OptionsNavPane.N ...

  9. RabbitMQ---初识

    1.概述 1.1 RabbitMQ   是  实现了   高级消息队列协议(AMQP) 的开源   消息代理软件,也称为  面向消息的中间件: AMQP:Advanced Message Queuin ...

  10. 动态时间规整DTW(Dynamic Time Warping )

    动态时间规整DTW(Dynamic Time Warping ) 原文:https://blog.csdn.net/raym0ndkwan/article/details/45614813 算法笔记- ...