C# Post JSON Data 使用 HttpClient

工程師的工作常會使用JSON格式去串接外部的API進行資料交換,

.net 有提供3種方法,

分別是HttpWebRequest、WebClient、HttpClient等方法,

HttpClient

是.net4.5才有的新功能,詳細的技術細節就不探討,

首些,先建立一個匿名型別

var x = new
{
user_id=5937502,
coupon_id=224,
verify_token= "d69df53622f1a83e22ec33d058068c5ecd53c705"
};

string JsonString= JsonConvert.SerializeObject(x);
string Result = "";

建立HttpCient連線,填入URL、JsonString、utf8編碼

HttpClient client = new HttpClient();
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, "你想要POST的URL");
requestMessage.Content = new StringContent(JsonString, Encoding.UTF8, "application/json");
HttpResponseMessage response = client.SendAsync(requestMessage).GetAwaiter().GetResult();

if (response.StatusCode.ToString() == "OK")
{
string r = response.Content.ReadAsStringAsync().Result.ToString();
Message MS = JsonConvert.DeserializeObject<Message>(r);
Result = JsonConvert.SerializeObject(MS);
}
else
{
Result = "伺服器連線異常";
}

return Result;

這裡的Message是一個類別做轉型,因為得到的回傳結果是Unicode的形式,

轉型後才能看到中文的顯示結果。

HttpWebRequest

送出成功的結果

result