// 待请求的地址
string url = "http://www.cnblogs.com";// 创建 WebRequest 对象,WebRequest 是抽象类,定义了请求的规定,
// 可以用于各种请求,例如:Http, Ftp 等等。
// HttpWebRequest 是 WebRequest 的派生类,专门用于 Http
System.Net.HttpWebRequest request= System.Net.HttpWebRequest.Create(url) as System.Net.HttpWebRequest;// 请求的方式通过 Method 属性设置 ,默认为 GET
// 可以将 Method 属性设置为任何 HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或 OPTIONS。
request.Method = "POST";// 还可以在请求中附带 Cookie
// 但是,必须首先创建 Cookie 容器
request.CookieContainer = new System.Net.CookieContainer();System.Net.Cookie requestCookie= new System.Net.Cookie("Request", "RequestValue","/", "localhost");
request.CookieContainer.Add(requestCookie);Console.WriteLine("请输入请求参数:");// 输入 POST 的数据.
string inputData = Console.ReadLine();// 拼接成请求参数串,并进行编码,成为字节
string postData = "firstone=" + inputData;
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes(postData);// 设置请求的参数形式
request.ContentType = "application/x-www-form-urlencoded";// 设置请求参数的长度.
request.ContentLength = byte1.Length;// 取得发向服务器的流
System.IO.Stream newStream = request.GetRequestStream();// 使用 POST 方法请求的时候,实际的参数通过请求的 Body 部分以流的形式传送
newStream.Write(byte1, 0, byte1.Length);// 完成后,关闭请求流.
newStream.Close();// GetResponse 方法才真的发送请求,等待服务器返回
System.Net.HttpWebResponse response= (System.Net.HttpWebResponse)request.GetResponse();// 首先得到回应的头部,可以知道返回内容的长度或者类型
Console.WriteLine("Content length is {0}", response.ContentLength);
Console.WriteLine("Content type is {0}", response.ContentType);// 回应的 Cookie 在 Cookie 容器中
foreach (System.Net.Cookie cookie in response.Cookies)
{Console.WriteLine("Name: {0}, Value: {1}", cookie.Name, cookie.Value);
}
Console.WriteLine();// 然后可以得到以流的形式表示的回应内容
System.IO.Stream receiveStream= response.GetResponseStream();    // 还可以将字节流包装为高级的字符流,以便于读取文本内容
// 需要注意编码
System.IO.StreamReader readStream= new System.IO.StreamReader(receiveStream, Encoding.UTF8);Console.WriteLine("Response stream received.");
Console.WriteLine(readStream.ReadToEnd());// 完成后要关闭字符流,字符流底层的字节流将会自动关闭
response.Close();
readStream.Close();

使用WebRequest对象调用新浪天气预报

    public string GetWeather(string city){string weatherHtml = string.Empty;//转换输入参数的编码类型string cityInfo = HttpUtility.UrlEncode(city,System.Text.UnicodeEncoding.GetEncoding("GB2312"));//初始化新的webRequstHttpWebRequest weatherRequest = (HttpWebRequest)WebRequest.Create("http://php.weather.sina.com.cn/search.php?city="+cityInfo);HttpWebResponse weatherResponse = (HttpWebResponse)weatherRequest.GetResponse();//从Internet资源返回数据流Stream weatherStream = weatherResponse.GetResponseStream();//读取数据流StreamReader weatherStreamReader = new StreamReader(weatherStream,System.Text.Encoding.Default);//读取数据weatherHtml = weatherStreamReader.ReadToEnd();weatherStreamReader.Close();weatherStream.Close();weatherResponse.Close();//针对不同的网站查看html源文件return weatherHtml;}

转载于:https://www.cnblogs.com/grayworm/p/4865681.html

WebRequest使用相关推荐

  1. php gzipstream,c# – 在WebRequest中发送gzip数据?

    我有大量的数据(〜100k),我的C#应用​​程序发送到我的Apache服务器,安装了mod_gzip.我试图使用System.IO.Compression.GZipStream gzip数据. PH ...

  2. 利用WebClient和WebRequest类获得网页源代码C#

    作者:不详       请速与本人联系 GetPageHtml.aspx <%@ Page language="c#" validateRequest = "fal ...

  3. SilverLight学习笔记--Silverlight中WebRequest通讯

    本文我们学习如何使用WebRequest类实现客户端和服务器端的通讯.      本例处理过程:在客户端,我们在文本框中输入任意文本,然后用POST方法向服务器端传递信息,服务器端收到从客户端传来的信 ...

  4. c# webrequest 自动登入网站

    这两天用c# 写了一个自动登入网页的小工具.使用的是发送webrequest的方式. 首先,使用抓包工具fiddler抓取登入页面时发送的request. 通过抓包工具,能够获取登入页面时发送的请求, ...

  5. C# WebRequest 基础连接已关闭 连接意外关闭

    1. 出现这种问题一般是因为request和response没有释放造成的,在请求处理完毕对请求request调用abort,对response调用close处理一下就好了. 2.我自己试的是这种: ...

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

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

  7. 一步一步学Silverlight 2系列(13):数据与通信之WebRequest

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  8. 【错误记录】Flutter 报错 Downloading the Dart SDK using the BITS service failed, retrying with WebRequest...

    文章目录 一. 报错信息 二.解决方案 ( 检查镜像地址环境变量设置 ) 1.检查镜像地址环境变量设置 ( 错误方案 没有解决问题 ) 2.尝试使用官方地址 三.总结 1.官方镜像 ( 推荐方案 ) ...

  9. webclient 和 webrequest获取网页源码的

    private void WebClientButton_Click(object sender, System.EventArgs e) { PageUrl = UrlText.Text; WebC ...

  10. httpWebRequest和webRequest的区别

    httpWebRequest是webRequest的子类,httpWebRequest是基于http协议的 . HttpWebRequest 是 WebRequest 的实例化使用,单独的 WebRe ...

最新文章

  1. RabbitMQ消息队列生产者和消费者
  2. php主键自增sql语句,sql语句id自增的问题
  3. 【Python数据结构】——链表
  4. 扩展mysql_扩展mysql - 手把手教你写udf
  5. xml编辑无提示?这么破!
  6. 【slowfast 减少ava数据集】将ava数据集缩小到2个,对数据集做训练,然后进行检测,为训练自己的数据集做准备
  7. AndroidM 内核空间到用户空间接口类型
  8. Google Hacking技术
  9. 插入顶部_最快速地把同一内容插入到Word文档不同页面的相同位置
  10. [fastjson] - fastjson中 JSONObject 和 JSONArray
  11. 计算机算法设计与分析 旅行售货员问题
  12. Gamma 矫正用于平衡光照不均匀
  13. Activity是如何挂载Pargment的Day35
  14. JavaWeb篇-谷歌验证码的使用
  15. 如何在物理机上安装Centos操作系统(实体机物理机)
  16. 77GHz雷达信号处理流程框图及应用方案
  17. 轻松解决U盘中病毒,文件变成.exe执行文件的问题
  18. arcmap10.7打开tif文件一片空白 | 解决方法
  19. 51单片机 Proteus仿真 基于单片机的篮球计分器设计 LCD
  20. libusb ubuntu

热门文章

  1. 如何下载DELL电脑系统恢复镜像并制作USB系统安装盘?
  2. jqGrid+bootstrap使用
  3. PDF(包含数学公式)转word
  4. Everything 添加扫描 移动磁盘
  5. libsvm matlab 3.18下载,libsvm-3.17 最新的从官方网站下载的 工具箱 matlab 238万源代码下载- www.pudn.com...
  6. 【本科】自动化,【硕士】控制工程与科学的就业前景咋样
  7. email英文计算机求职信,计算机英文求职信范文
  8. 软件工程的专业介绍与前景
  9. vue实现分享功能,百度分享,需要刷新页面才显示的问题
  10. 明景“视频结构化大数据分析”