Canonical HTTP POST code?

前端 未结 3 1506
攒了一身酷
攒了一身酷 2021-02-05 13:10

I\'ve seen so many implementations of sending an http post, and admittedly I don\'t fully understand the underlying details to know what\'s required.

What is the

3条回答
  •  不要未来只要你来
    2021-02-05 13:52

    Compare:

    // create a client object
    using(System.Net.WebClient client = new System.Net.WebClient()) {
        // performs an HTTP POST
        client.UploadString(url, xml);  
    
    }
    

    to

    string HttpPost (string uri, string parameters)
    { 
       // parameters: name1=value1&name2=value2 
       WebRequest webRequest = WebRequest.Create (uri);
       webRequest.ContentType = "application/x-www-form-urlencoded";
       webRequest.Method = "POST";
       byte[] bytes = Encoding.ASCII.GetBytes (parameters);
       Stream os = null;
       try
       { // send the Post
          webRequest.ContentLength = bytes.Length;   //Count bytes to send
          os = webRequest.GetRequestStream();
          os.Write (bytes, 0, bytes.Length);         //Send it
       }
       catch (WebException ex)
       {
          MessageBox.Show ( ex.Message, "HttpPost: Request error", 
             MessageBoxButtons.OK, MessageBoxIcon.Error );
       }
       finally
       {
          if (os != null)
          {
             os.Close();
          }
       }
    
       try
       { // get the response
          WebResponse webResponse = webRequest.GetResponse();
          if (webResponse == null) 
             { return null; }
          StreamReader sr = new StreamReader (webResponse.GetResponseStream());
          return sr.ReadToEnd ().Trim ();
       }
       catch (WebException ex)
       {
          MessageBox.Show ( ex.Message, "HttpPost: Response error", 
             MessageBoxButtons.OK, MessageBoxIcon.Error );
       }
       return null;
    } // end HttpPost 
    

    Why are people using/writing the latter?

提交回复
热议问题