首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 使用 HttpWebRequest 向外部伺服器發送 POST 請求

     編輯:關於ASP.NET

透過 System.Net.WebRequest 建立 HTTP POST 請求,設定 Content-Type: application/x-www-form-urlencoded,將表單資料寫入請求串流並讀取回應。

完整元件程式碼 (C#)

using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web;

namespace SendMessage
{
    public class Messenger
    {
        public bool SendMsg(string msg)
        {
            try
            {
                WebRequest req = WebRequest.Create("https://target.url/api");
                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded";

                string postData = "msg=" + HttpUtility.UrlEncode(msg) + "&type=0";
                byte[] buffer = Encoding.UTF8.GetBytes(postData);
                req.ContentLength = buffer.Length;

                using (Stream reqStream = req.GetRequestStream())
                    reqStream.Write(buffer, 0, buffer.Length);

                using (WebResponse resp = req.GetResponse())
                using (Stream respStream = resp.GetResponseStream())
                using (StreamReader sr = new StreamReader(respStream, Encoding.UTF8))
                {
                    string responseText = sr.ReadToEnd();
                    // 可解析 responseText 判斷成功與否
                }
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
    }
}

現代替代方案

.NET Framework 4.5+ 建議使用 HttpClient,語法更簡潔、支援非同步、自動處理連線池:

using (HttpClient client = new HttpClient())
{
    var content = new FormUrlEncodedContent(new[] { new KeyValuePair("msg", msg) });
    HttpResponseMessage resp = await client.PostAsync("https://target.url/api", content);
    string result = await resp.Content.ReadAsStringAsync();
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved