Asp.net-Web-Api

client.DeleteAsync - 在正文中包含對象

  • March 25, 2017

我有一個 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由於更高級別不支持主體,因此您必須在方便性方面放棄一點,但是“很長的路”仍然很簡單:

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);

引用自:https://stackoverflow.com/questions/43018663