在主体中使用JObject调用Web Api
本文关键字:调用 Web Api JObject 主体 | 更新日期: 2023-09-27 18:02:07
我想在后面的代码中调用我构建的Web Api,并保存我存储在以下JObject中的一些数据:
var json = new JObject(
new JProperty("firstName", txtFirstName.Text),
new JProperty("lastName", txtLastName.Text),
new JProperty("companyName", txtCompanyName.Text),
new JProperty("email", txtEmail.Text),
new JProperty("phone", txtPhone.Text)
);
问题是,我不确定做这件事的最好方法。我找到了大量接近答案的例子,但不完全是我想要的。那么,如何构造一个对web api的http调用(在c#中)并将前面提到的jobobject发布在消息体中呢?我不一定需要返回任何东西,除了一个通用的成功或失败消息。谢谢你的帮助。
下面是使用System.Net.HttpClient
string jsonText = json.ToString();
using (var client = new HttpClient())
{
var httpContent = new StringContent(jsonString);
httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
HttpResponseMessage message = await client.PostAsync("http://myWebUrl/send", httpContent);
}
我最终将json更改为。net对象,并解决了我的问题。
using System.Net.Http;
using System.Net.Http.Headers;
var userData = new User()
{
firstName = txtFirstName.Text,
lastName = txtLastName.Text,
companyName = txtCompanyName.Text,
email = txtEmail.Text,
phone = txtPhone.Text
};
client.BaseAddress = new Uri("http://yourBaseUrlHere");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.PostAsJsonAsync("requestUrlHere", user);
if (response.IsSuccessStatusCode)
{
//Success code
}