C# Http POST請求方法
阿新 • • 發佈:2019-01-02
/// <summary> /// Name:Panda /// POST請求 /// Date:2016-06-22 /// </summary> /// <param name="Url">介面地址</param> /// <param name="Param">介面引數</param> /// <param name="ContentType">請求標頭--由於多個介面在同一個程式中,標頭不一致才寫成傳遞形式,如表頭都一致的話,可以寫死</param> /// <param name="RecCode">傳送請求時編碼格式--由於多個介面在同一個程式中,傳送請求過去的編碼不同,所以寫成傳遞形式,如果都一致,可寫死</param> /// <param name="SendCode">接收返回編碼格式--由於多個介面在同一個程式中,得到的返回結果的編碼不同,所以寫成傳遞形式,如果都一致,可寫死</param> /// <returns>返回POST結果</returns> private string Post(string Url, string Param, string ContentType, string RecCode, string SendCode) { string responseFromServer = ""; WebRequest request = WebRequest.Create("" + Url + "");//建立一個請求,把介面地址填進來 request.Method = "POST";//設定請求的方法屬性 //建立後資料並將其轉換為位元組陣列 string postData = "" + Param + ""; byte[] byteArray = null; if (RecCode.Equals("UTF8")) { byteArray = Encoding.UTF8.GetBytes(postData); } else if (RecCode.Equals("GBK")) { byteArray = Encoding.UTF8.GetBytes(postData); } request.ContentType = "" + ContentType + "";//設定請求標頭 request.ContentLength = byteArray.Length;//請求長度 Stream dataStream = request.GetRequestStream();//得到請求流 dataStream.Write(byteArray, 0, byteArray.Length);//將資料寫入請求流 dataStream.Close();//關閉流物件 WebResponse response = request.GetResponse();//得到的響應 Console.WriteLine(((HttpWebResponse)response).StatusDescription);//顯示狀態 dataStream = response.GetResponseStream();//獲取伺服器返回的流 //StreamReader php = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8")); StreamReader reader = null;//;new StreamReader(dataStream);//開啟流 if (SendCode.Equals("UTF8")) { reader = new StreamReader(dataStream, Encoding.GetEncoding("UTF-8"));//開啟流 } else if (SendCode.Equals("GBK")) { reader = new StreamReader(dataStream, Encoding.GetEncoding("GBK"));//開啟流 } responseFromServer = reader.ReadToEnd();//讀取內容 reader.Close(); dataStream.Close(); response.Close(); return responseFromServer; }