c# - 使用 Httpclient 将数据发布到其参数不是复杂对象的 WebApi
问题描述
这是我的 webapi 发布请求
[HttpPost]
[Route("Create/{id}")]
public async Task<IActionResult> CreateContact(Guid id, string email, string fullName)
{
// code removed for brevity
}
如何将contact
对象发布到 webapi?这就是我在客户端中所拥有的。
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://localhost:123");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var contact = new Contact() { Id = 12345, Email = "test@gmail.com", FullName = "John" };
HttpResponseMessage response = await client.PostAsJsonAsync($"/api/Contact/Create/{contact.Id}", contact);
if (response.IsSuccessStatusCode)
{
}
else
{
}
}
解决方案
不确定这是否是最好的,但它有效。在Route
属性中添加更多参数
[HttpPost]
[Route("Create/{id}/{email}/{fullName}")]
public async Task<IActionResult> CreateContact(Guid id, string email, string fullName)
{
// code removed for brevity
}
然后在 httpclient
HttpResponseMessage response = await client.PostAsJsonAsync($"/api/Contact/Create/{contact.Id}/{contact.Email}/{contact.FullName}", contact);
推荐阅读
- ruby - 为什么 Ruby Kirbybase 不适用于 if 语句?
- ms-access - 在多个字段上访问 VBA 关键字搜索功能
- php - 尝试创建自定义日志通道 Laravel 5.6
- elasticsearch - 嵌套没有对象名称的 DeleteByQuery
- python-2.7 - 检查头 mercurial python 钩子在版本 4.6.1 中不起作用
- pandas - Pandas 动态删除行
- vue.js - Vue选择错误选择
- python - 在 Heroku 上部署时管理站点条目上的 Django 错误
- sed - 使用 sed 更改最后一个字符
- node.js - 如何编写 powershell 脚本来在 Windows 上设置开发人员环境?