赞
踩
HttpWebRequest类主要利用HTTP 协议和服务器交互,通常是通过 GET 和 POST 两种方式来对数据进行获取和提交。
用C#语言写的关于HttpWebRequest 类的使用方法
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Net;
- using System.Text;
-
- namespace HttpWeb
- {
- /** <summary>
- /// Http操作类
- /// </summary>
- public static class httptest
- {
- /** <summary>
- /// 获取网址HTML
- /// </summary>
- /// <param name="URL">网址 </param>
- /// <returns> </returns>
- public static string GetHtml(string URL)
- {
- WebRequest wrt;
- wrt = WebRequest.Create(URL);
- wrt.Credentials = CredentialCache.DefaultCredentials;
- WebResponse wrp;
- wrp = wrt.GetResponse();
- string reader = new StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding("gb2312")).ReadToEnd();
- try
- {
- wrt.GetResponse().Close();
- }
- catch (WebException ex)
- {
- throw ex;
- }
- return reader;
- }
- /** <summary>
- /// 获取网站cookie
- /// </summary>
- /// <param name="URL">网址 </param>
- /// <param name="cookie">cookie </param>
- /// <returns> </returns>
- public static string GetHtml(string URL, out string cookie)
- {
- WebRequest wrt;
- wrt = WebRequest.Create(URL);
- wrt.Credentials = CredentialCache.DefaultCredentials;
- WebResponse wrp;
- wrp = wrt.GetResponse();
- string html = new StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding("gb2312")).ReadToEnd();
- try
- {
- wrt.GetResponse().Close();
- }
- catch (WebException ex)
- {
- throw ex;
- }
- cookie = wrp.Headers.Get("Set-Cookie");
- return html;
- }
- public static string GetHtml(string URL, string postData, string cookie, out string header, string server)
- {
- return GetHtml(server, URL, postData, cookie, out header);
- }
- public static string GetHtml(string server, string URL, string postData, string cookie, out string header)
- {
- byte[] byteRequest = Encoding.GetEncoding("gb2312").GetBytes(postData);
- return GetHtml(server, URL, byteRequest, cookie, out header);
- }
- public static string GetHtml(string server, string URL, byte[] byteRequest, string cookie, out string header)
- {
- byte[] bytes = GetHtmlByBytes(server, URL, byteRequest, cookie, out header);
- Stream getStream = new MemoryStream(bytes);
- StreamReader streamReader = new StreamReader(getStream, Encoding.GetEncoding("gb2312"));
- string getString = streamReader.ReadToEnd();
- streamReader.Close();
- getStream.Close();
- return getString;
- }
- /** <summary>
- /// Post模式浏览
- /// </summary>
- /// <param name="server">服务器地址 </param>
- /// <param name="URL">网址 </param>
- /// <param name="byteRequest">流 </param>
- /// <param name="cookie">cookie </param>
- /// <param name="header">句柄 </param>
- /// <returns> </returns>
- public static byte[] GetHtmlByBytes(string server, string URL, byte[] byteRequest, string cookie, out string header)
- {
- long contentLength;
- HttpWebRequest httpWebRequest;
- HttpWebResponse webResponse;
- Stream getStream;
- httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);
- CookieContainer co = new CookieContainer();
- co.SetCookies(new Uri(server), cookie);
- httpWebRequest.CookieContainer = co;
- httpWebRequest.ContentType = "application/x-www-form-urlencoded";
- httpWebRequest.Accept =
- "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
- httpWebRequest.Referer = server;
- httpWebRequest.UserAgent =
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
- httpWebRequest.Method = "Post";
- httpWebRequest.ContentLength = byteRequest.Length;
- Stream stream;
- stream = httpWebRequest.GetRequestStream();
- stream.Write(byteRequest, 0, byteRequest.Length);
- stream.Close();
- webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
- header = webResponse.Headers.ToString();
- getStream = webResponse.GetResponseStream();
- contentLength = webResponse.ContentLength;
- byte[] outBytes = new byte[contentLength];
- outBytes = ReadFully(getStream);
- getStream.Close();
- return outBytes;
- }
- public static byte[] ReadFully(Stream stream)
- {
- byte[] buffer = new byte[128];
- using (MemoryStream ms = new MemoryStream())
- {
- while (true)
- {
- int read = stream.Read(buffer, 0, buffer.Length);
- if (read <= 0)
- return ms.ToArray();
- ms.Write(buffer, 0, read);
- }
- }
- }
- /** <summary>
- /// Get模式
- /// </summary>
- /// <param name="URL">网址 </param>
- /// <param name="cookie">cookies </param>
- /// <param name="header">句柄 </param>
- /// <param name="server">服务器 </param>
- /// <param name="val">服务器 </param>
- /// <returns> </returns>
- public static string GetHtml(string URL, string cookie, out string header, string server)
- {
- return GetHtml(URL, cookie, out header, server, "");
- }
- /** <summary>
- /// Get模式浏览
- /// </summary>
- /// <param name="URL">Get网址 </param>
- /// <param name="cookie">cookie </param>
- /// <param name="header">句柄 </param>
- /// <param name="server">服务器地址 </param>
- /// <param name="val"> </param>
- /// <returns> </returns>
- public static string GetHtml(string URL, string cookie, out string header, string server, string val)
- {
- HttpWebRequest httpWebRequest;
- HttpWebResponse webResponse;
- Stream getStream;
- StreamReader streamReader;
- string getString = "";
- httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);
- httpWebRequest.Accept = "*/*";
- httpWebRequest.Referer = server;
- CookieContainer co = new CookieContainer();
- co.SetCookies(new Uri(server), cookie);
- httpWebRequest.CookieContainer = co;
- httpWebRequest.UserAgent =
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
- httpWebRequest.Method = "GET";
- webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
- header = webResponse.Headers.ToString();
- getStream = webResponse.GetResponseStream();
- streamReader = new StreamReader(getStream, Encoding.GetEncoding("gb2312"));
- getString = streamReader.ReadToEnd();
- streamReader.Close();
- getStream.Close();
- return getString;
- }
- }
- }

文章转载自: HttpWebRequest的使用 http://www.studyofnet.com/news/232.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。