WebRequest 对象的使用

来源:互联网 发布:mac系统怎么隐藏文件 编辑:程序博客网 时间:2024/05/20 17:23
内容比较简单,直接看代码的注释即可。

// 待请求的地址string url = "http://www.cnblogs.com";            // 创建 WebRequest 对象,WebRequest 是抽象类,定义了请求的规定,// 可以用于各种请求,例如:Http, Ftp 等等。// HttpWebRequest 是 WebRequest 的派生类,专门用于 HttpSystem.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();
http://www.mysjtu.com/page/M0/S547/547839.html
原创粉丝点击