Why do HttpMethods such as GET and DELETE cannot contain body?
public Task<HttpResponseMessage> GetAsync(Uri requestUri);
public Task<HttpResponseMessage> DeleteAsync(string requestUri);
also in Fiddler, if I supply a body, the background turns red. But still it will execute with body on it.

So as an alternative, I used SendAsync() because it accepts HttpRequestMessage which can contain HttpMethod as well as the content. 
// other codes
Category category = new Category(){ Description = "something" };
string categoryContent = JsonConvert.SerializeObject(category);
string type = "application/json";
HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Delete, "-page-")
HttpContent content = new StringContent(categoryContent, Encoding.UTF8, type);
HttpClient client = new HttpClient();
message.Content = content;
await client.SendAsync(message, HttpCompletionOption.ResponseHeadersRead);
// other codes
Did I missed something else?
 
    