using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.IO;
using System.Collections;
using System.Web;
namespace CnGineAppCode.Comm
{
public class HttpUtility
{
//
//private static readonly string defaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
private static readonly string defaultUserAgent =
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
private CookieContainer _cookieContainer =
new CookieContainer();
public CookieContainer CookieContainer
{
set {
this._cookieContainer =
value; }
get {
return this._cookieContainer; }
}
#region Get请求
public string CreateGet(
string url)
{
return CreateGet(url, Encoding.UTF8,
null,
null);
}
public string CreateGet(
string url, Encoding coding)
{
return CreateGet(url, coding,
null,
null);
}
public string CreateGet(
string url, Encoding coding,
string userAgent, CookieCollection cookies)
{
HttpWebRequest request =
null;
HttpWebResponse response =
null;
request = WebRequest.Create(url)
as HttpWebRequest;
request.Method =
"GET";
request.KeepAlive =
false;
//request.ContentType = "application/x-www-form-urlencoded";
//Cookie
if (cookies !=
null)
CookieContainer.Add(cookies);
request.CookieContainer =
CookieContainer;
//userAgent
if (!
string.IsNullOrEmpty(userAgent))
request.UserAgent =
userAgent;
else
request.UserAgent =
defaultUserAgent;
// 提交请求数据
//if (!string.IsNullOrEmpty(para))
//{
// byte[] data = Encoding.ASCII.GetBytes(para);
// using (Stream stream = request.GetRequestStream())
// {
// stream.Write(data, 0, data.Length);
// }
//}
// 接收返回的页面
response = request.GetResponse()
as HttpWebResponse;
System.IO.Stream responseStream =
response.GetResponseStream();
System.IO.StreamReader reader =
new System.IO.StreamReader(responseStream, coding);
string srcString =
reader.ReadToEnd();
return srcString;
}
#endregion
#region Post请求
public string CreatePost(
string url, Hashtable param)
{
return CreatePost(url, Encoding.UTF8, param,
null,
null);
}
public string CreatePost(
string url, Hashtable param, Encoding coding)
{
return CreatePost(url, coding, param,
null,
null);
}
public string CreatePost(
string url, Encoding coding, Hashtable param,
string userAgent, CookieCollection cookies)
{
HttpWebRequest request =
null;
HttpWebResponse response =
null;
request = WebRequest.Create(url)
as HttpWebRequest;
request.Method =
"POST";
request.KeepAlive =
false;
request.ContentType =
"application/x-www-form-urlencoded;charset=gb2312";
//Cookie
if (cookies !=
null)
CookieContainer.Add(cookies);
request.CookieContainer =
CookieContainer;
//userAgent
if (!
string.IsNullOrEmpty(userAgent))
request.UserAgent =
userAgent;
else
request.UserAgent =
defaultUserAgent;
// 提交请求数据
if (param!=
null && param.Keys.Count>
0)
{
StringBuilder sb =
new StringBuilder();
foreach (
string key
in param.Keys)
{
string value =
"";
if (param[key] !=
null && !
string.IsNullOrEmpty(param[key].ToString()))
{
value =
System.Web.HttpUtility.UrlEncode(param[key].ToString(), coding);
}
sb.AppendFormat("{0}={1}&", key, value);
}
byte[] data = Encoding.ASCII.GetBytes(System.Text.RegularExpressions.Regex.Replace(sb.ToString(),
"&$",
""));
using (Stream stream =
request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
// 接收返回的页面
response = request.GetResponse()
as HttpWebResponse;
System.IO.Stream responseStream =
response.GetResponseStream();
System.IO.StreamReader reader =
new System.IO.StreamReader(responseStream, coding);
string srcString =
reader.ReadToEnd();
return srcString;
}
#endregion
}
}
转载于:https://www.cnblogs.com/daixingqing/archive/2012/12/08/2809175.html