透過 System.Net.WebRequest 建立 HTTP POST 請求,設定 Content-Type: application/x-www-form-urlencoded,將表單資料寫入請求串流並讀取回應。
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();
}