zoukankan      html  css  js  c++  java
  • 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();

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

  • 相关阅读:
    kvm介绍
    正式班D24
    正式班D23
    正式班D21
    正式班D20
    正式班D19
    正式班D18
    正式班D17
    正式班D16
    正式班D15
  • 原文地址:https://www.cnblogs.com/liang-ling/p/3359401.html
Copyright © 2011-2022 走看看