实例代码,post发送类,编写如下:
class PostSubmitter {
public enum PostTypeEnum { Get, Post }
private string m_url = string.Empty;
private NameValueCollection m_values = new NameValueCollection();
private PostTypeEnum m_type = PostTypeEnum.Get;
public PostSubmitter() { }
public PostSubmitter(string url): this() { m_url = url; }
public PostSubmitter(string url, NameValueCollection values): this(url) { m_values = values; }
public string Url { get { return m_url; } set { m_url = value; } }
public NameValueCollection PostItems { get { return m_values; } set { m_values = value; } }
public PostTypeEnum Type { get { return m_type; } set { m_type = value; } }
public string Post()
{
StringBuilder parameters = new StringBuilder();
for (int i = 0; i < m_values.Count; i++)
{
EncodeAndAddItem(ref parameters, m_values.GetKey(i), m_values[i]);
}
string result = PostData(m_url, parameters.ToString());
return result;
}
public string Post(string url) { m_url = url; return this.Post(); }
public string Post(string url, NameValueCollection values) { m_values = values; return this.Post(url); }
private string PostData(string url, string postData)
{
HttpWebRequest request = null;
if (m_type == PostTypeEnum.Post)
{
Uri uri = new Uri(url);
request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
using (Stream writeStream = request.GetRequestStream())
{
UTF8Encoding encoding = new UTF8Encoding();
byte[] bytes = encoding.GetBytes(postData);
writeStream.Write(bytes, 0, bytes.Length);
} }
else
{
Uri uri = new Uri(url + "?" + postData);
request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
}
string result = string.Empty;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8))
{ result = readStream.ReadToEnd(); } } } return result; }
private void EncodeAndAddItem(ref StringBuilder baseRequest, string key, string dataItem)
{
if (baseRequest == null)
{ baseRequest = new StringBuilder(); }
if (baseRequest.Length != 0) { baseRequest.Append("&"); }
baseRequest.Append(key);
baseRequest.Append("=");
baseRequest.Append(System.Web.HttpUtility.UrlEncode(dataItem));
} }
调用代码:
post.PostItems.Add("content", request);
post.Type = PostSubmitter.PostTypeEnum.Post;
string result = post.Post();
------结果自己判断匹配----------