额!下载文档这事儿我也能干??能a!不过就是不太完美,但简单的下载还是可以的!成长嘛,是需要过程di...
这个过程中需要一个知识点:URL。统一资源定位符(英UniformResourceLocator的缩写)也被称为网页地址,是因特网上标准的资源的地址。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址的。URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。
URL 的一般形式是:
<URL的访问方式>://<主机>:<端口>/<路径>
URL的访问方式有:
1.ftp —— 文件传送协议 FTP
2.http —— 超文本传送协议HTTP
3.News —— USENET新闻
<主机> 是存放资源的主机在因特网中的域名
举个例子来记录一下:
static void Main(string[] args)
{
//准备一个URL,就是要下载资源的地址
string url = "http://www.sohu.com";
WebRequest wr = WebRequest.Create(url);
WebResponse wsp = wr.GetResponse();
Stream st = wsp.GetResponseStream();
//创建一个流对象,用来解压(或者压缩)文件,这里的sohu网首页是一个压缩文件,所以需要解压
GZipStream gzs = new GZipStream(st, CompressionMode.Decompress);
//将文件以GBK编码格式读出来
StreamReader sr = new StreamReader(gzs, Encoding.GetEncoding("gbk"));
//ReadToEnd这个方法非常好,可以直接读到文件的末尾,速度比较快
string ss = sr.ReadToEnd();
Console.WriteLine(ss);
//以GBK 的编码格式写进我们事先准备好的文档(souhu.html)保存下来
StreamWriter sw = new StreamWriter("souhu.html", false, Encoding.GetEncoding("gbk"));
sw.WriteLine(ss);
sw.Flush();
sw.Close();
sr.Close();
gzs.Close();
st.Close();
}
看看结果什么样。。
这样就将搜狐首页的源代码得到了,将保存的“sohu.html”文档用浏览器打开就得到了一模一样的网页。
转载于:https://blog.51cto.com/broncho/1293714