使用HttpWebRequest以及HttpWebResponse读取Http远程文件

jackyhwei 发布于 2010-08-15 21:24 点击: 1054次 

来自:博客园

在以前我们经常是使用XmlHttp来获取某个网页的内容,现在.Net时代已经来临,是否我们还要使用XMLHttp来获取呢?答案当然是不,因为微软已经帮我们写好了一些容易使用的类,而这些类就放在System.Net命名空间中。

TAG: webservice  XMLHTTP  

在以前我们经常是使用XmlHttp来获取某个网页的内容,现在.Net时代已经来临,是否我们还要使用XMLHttp来获取呢?答案当然是不,因为微软已经帮我们写好了一些容易使用的类,而这些类就放在System.Net命名空间中。

这篇文章将会使用到两个类:System.Net.HttpWebRequest以及System.Net.HttpWebResponse,它们负责发送以及接收请求,我们现在就来试一下获取http://www.rosoo.net的首页代码,以下以代码作示例。

首先建立一个HttpWebRequest实例,我们不用使用HttpWebRequest类的构造函数,而是使用WebRequest类提供的静态方法Create,它的原型如下:

public static WebRequest Create(string);
public static WebRequest Create(uri);

一般我们可以使用第一种方法,就是直接将网址传进去,如果协议为http或者https,它会返回一个HttpWebRequest实例:

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create( "http://www.rosoo.net");

因为它返回的实例类型是WebRequest而不是HttpWebRequest,因此记得要进行强制类型转换.
接下来建立一个HttpWebResponse以便接收服务器发送的信息,它是调用HttpWebRequest.GetResponse来获取的:

HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

如果webResponse.StatusCode的值为HttpStatusCode.OK,表示成功,那你就可以接着读取接收到的内容了:
Stream stream = webResponse.GetResponseStream(); // 获取接收到的流

System.IO.StreamReader streamReader = new StreamReader(stream, System.Text.Encoding.GetEncoding("GB2312"));

// 建立一个流读取器,可以设置流编码,不设置则默认为UTF-8

string content = streamReader.ReadToEnd();// 读取流字符串内容

streamReader.Close();// 关闭相关对象
webResponse.Close();

大功告成,我们已经将无忧脚本首页内容保存在content这个字符串变量中了,很简单吧?当然,根据需要还有更多设计方法可以选择,比如使用Socket,那还提供了System.Net.Sockets命名空间中的类,学.Net的朋友有事没事逛逛MSDN,肯定会有更多的收获。

(mugua)

 

转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201008/9976.html]
 

使用HttpWebRequest以及HttpWebResponse读取Http远程文件的更多相关文章

  1. 在Linux系统中使用Vim读写远程文件

    大家好,我是良许. 今天我们讨论一个 Vim 使用技巧--用 Vim 读写远程文件.要实现这个目的,我们需要使用到一个叫 netrw.vim 的插件.从 Vim 7.x 开始,netrw.vim 就被 ...

  2. C#使用HttpWebRequest和HttpWebResponse上传文件示例

    C#使用HttpWebRequest和HttpWebResponse上传文件示例 1.HttpHelper类: 复制内容到剪贴板程序代码 using System;using System.Colle ...

  3. MeteoInfoLab脚本示例:读取远程文件

    利用Unidata netCDF Java库对远程文件的读取能力(OpenDAP, ADDE, THREDDS等),可以读取远程文件并绘图.脚本程序: fn = 'http://monsoondata ...

  4. PHP读取远程文件的三种方法

    file_get_contents <?php$url = http://www.xxx.com/;$contents = file_get_contents($url);//如果出现中文乱码使 ...

  5. http方式获取远程文件内容

    public class HttpServer { /// <summary> /// 读取远程文件的内容 /// </summary> /// <param name= ...

  6. c# HttpWebRequest 与 HttpWebResponse

    如果你想做一些,抓取,或者是自动获取的功能,那么就跟我一起来学习一下Http请求吧.本文章会对Http请求时的Get和Post方式进行详细的说明,在请求时的参数怎么发送,怎么带Cookie,怎么设置证 ...

  7. .net 直接输出远程文件到浏览器和下载文件保存到本机

    利用了xmlhttp,实现代码比较简单具体实现如下: 首先bin文件引入,com->microsoft xml v3.0 具体代码如下: protected void Button1_Click ...

  8. C#_抓包HttpWebRequest跟HttpWebResponse

    1.第一招,根据URL地址获取网页信息  这招是入门第一式, 特点: 1.最简单最直观的一种,入门课程. 2.适应于明文,无需登录,无需任何验证就可以进入的页面. 3.获取的数据类型为HTML文档. ...

  9. c# HttpWebRequest与HttpWebResponse(转)

    如果你想做一些,抓取,或者是自动获取的功能,那么就跟我一起来学习一下Http请求吧.本文章会对Http请求时的Get和Post方式进行详细的说明,在请求时的参数怎么发送,怎么带Cookie,怎么设置证 ...

随机推荐

  1. 程序的内存分配 C\C++

    原文:http://blog.csdn.net/oohaha_123/article/details/24460425 程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区( ...

  2. 5个基于css3超炫的鼠标滑动按钮动画

    今天给大家分享5个基于css3超炫的鼠标滑动按钮动画.这5个按钮鼠标经过的时候有超炫的动画效果.这5个按钮适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之 ...

  3. c++ 设计模式4 (Strategy)

    3.2 Strategy (策略模式) 动机:在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂,而且有时候支持不使用或不常使用的算法也是 ...

  4. K - 4 Values whose Sum is 0(中途相遇法)

    K - 4 Values whose Sum is 0 Crawling in process... Crawling failed Time Limit:9000MS     Memory Limi ...

  5. Java基础知识强化之IO流笔记79:NIO之 SocketChannel

    1. Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服 ...

  6. 将Winform程序快速转换为在浏览器中运行的程序

    http://www.codeproject.com/Articles/31429/Embedding-a-NET-WinForms-Application-in-an-Interne 详见以上文章. ...

  7. 关于automatic_Panoramic_Image_Stitching_using_Invariant_features 的阅读笔记(2)

    接上一篇: http://www.cnblogs.com/letben/p/5446074.html#3538201 捆绑调整 (好开心有同学一起来看看这些问题,要不然就是我自己的话,我应该也不会看的 ...

  8. C#中XML与对象之间的序列化、反序列化

    直接上代码: using System; using System.IO; using System.Text; using System.Xml; using System.Xml.Serializ ...

  9. VMware系统运维(十九)部署虚拟化桌面 Horizon View 5.2 通过手持设备进行连接测试

    1.打开连接程序View,设置连接服务器的IP地址,点击连接,在这里输入连接的用户名密码,点击"连接" 2.正在载入桌面中...... 3.连接成功,个人建议,手机支持OTG的可以 ...

  10. Linux命令之cut

    cut:文件的每一行剪切字节.字符和字段并将这些字节.字符和字段写至标准输出.如果不指定 File 参数,cut 命令将读取标准输入.必须指定 -b.-c 或 -f 标志之一. 主要参数: -b(by ...