我有一个ASP.NET MVC 5网站 - 在C#客户端代码中我正在使用HttpClient.PutAsJsonAsync(path,myObject)来调用Json API(API也是我在Web API中创建的)。
client.BaseAddress = new Uri("http://mydomain");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PutAsJsonAsync("api/something", myObj);
我想用删除动词做同样的事情。但是client.DeleteAsync
不允许对象在体内传递。 (我想在URI中记录删除的原因以及要删除的项目的ID)。
有办法做到这一点吗?
答案 0 :(得分:6)
你必须放弃一点方便,因为较高级DeleteAsync
不支持一个正文,但它仍然非常简单地做到了“漫长的道路”:
var request = new HttpRequestMessage {
Method = HttpMethod.Delete,
RequestUri = new Uri("http://mydomain/api/something"),
Content = new StringContent(JsonConvert.SerializeObject(myObj), Encoding.UTF8, "application/json")
};
var response = await client.SendAsync(request);