我有一个简单的DTO对象,如下所示:
public class InstructionComponents
{
public int ApplicationNumber { get; set; }
public string FurtherComments { get; set; }
}
我希望能够通过POST请求将此对象发送到使用ASP.NET MVC的API端点。但是我想确保数据是使用请求的正文发送的,而不仅仅是像GET中那样附加到URL。
使用get请求,这非常简单,可以使用以下代码来实现。
var url = //endpoint url
using(var httpClient = new HttpClient())
{
var response = httpClient.GetStringAsync(url).Result;
return result;
}
我知道我可以使用库将对象序列化为JSON字符串,但是该字符串怎么办?
答案 0 :(得分:1)
这是一个POST示例,可能会有用:
private bool isTimeValid;
public bool IsTimeValid
{
get { return (Totalstart > Totalend); }
set
{
if(value != isTimeValid)
{
isTimeValid = value;
NotifyPropertyChanged(nameof(IsTimeValid));
}
}
}
答案 1 :(得分:0)
最简单的方法是扩展方法PostAsJsonAsync()
此方法将处理所需的对象的任何序列化。
从文档中可以找到
命名空间:System.Net.Http 程序集:System.Net.Http.Formatting(在System.Net.Http.Formatting.dll中)
网络上的虚构示例:
static async Task<Uri> CreateProductAsync(Product product)
{
HttpResponseMessage response = await client.PostAsJsonAsync(
"api/products", product);
response.EnsureSuccessStatusCode();
// return URI of the created resource.
return response.Headers.Location;
}