client.DeleteAsync - 在正文中包含对象
client.DeleteAsync - include object in body
我有一个 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)。
有办法吗?
由于更高级别 DeleteAsync
不支持 body,因此在便利性方面您不得不放弃一些,但 "long way" 仍然非常简单:
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);
我有一个 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)。
有办法吗?
由于更高级别 DeleteAsync
不支持 body,因此在便利性方面您不得不放弃一些,但 "long way" 仍然非常简单:
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);