http post发送

实例代码,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();

------结果自己判断匹配----------

posted @ 2013-10-09 16:02  bk.lling  阅读(297)  评论(0编辑  收藏  举报