[英]The PostAsync in HttpClient doesn't send data to my webapi
我創建了一個 HttpClient 實例來使用 post 方法調用 API。
using (var client = new HttpClient())
{
var person = new Stu();
person.ApplicantId = "48751889-D86E-487B-9508-000EAB65F11F";
var json = JsonConvert.SerializeObject(person);
var data = new StringContent(json, Encoding.UTF8, "application/json");
var url = "http://localhost:52085/api/CollegeService/IsCoolegeStudent";
// var client = new HttpClient();
var response = await client.PostAsync(url, data);
string result = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(result);
}
public class Stu
{
public string ApplicantId { get; set; }
}
當我檢查我的 API 時,我收到我的對象的申請者 ID 為空。
我不明白為什么申請人 ID 是空的。
最后,我在我的 API [FromBody]
[FromForm]
更改為[FromBody]
並且它工作正常但它停留在這一行var response = await client.PostAsync(url, data);
並沒有繼續。
等待鍵盤讓我的應用程序卡住了,我已經改變了這種方式var response = await client.PostAsync(url, data).ConfigureAwait(false);
但我不明白為什么會導致這個問題。
如果使用FromForm
屬性,則在發送 POST 消息時應使用FormUrlEncodedContent
而不是StringContent
作為內容類型。 如果你仍然想發送JSON -改變FromForm
在IsCoolegeStudent方法FromBody
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.