HttpClient.DeleteAsync et le Contenu.ReadAdStringAsync toujours retourner la valeur null

Quand je suis en utilisant DeleteAsync fonction dans HttpClient (Système d'.Net.Http) et de récupérer le contenu avec Content.ReadAsStringAsync() je reçois toujours null retourné.

J'ai essayé la même chose avec GET, POST et PUT - et ils retournent un résultat.

Voici mon code:

HttpClient _client = new HttpClient();
_client.BaseAddress = new Uri("http://httpbin.org/");
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = _client.DeleteAsync("/delete").Result;
string res = await response.Content.ReadAsStringAsync();
return await JsonConvert.DeserializeObjectAsync<T>(res);

Je reçois toujours null retourné.

Cependant, tout ceci fonctionne:

OBTENIR:

HttpResponseMessage response = _client.GetAsync("/get").Result;
string res = await response.Content.ReadAsStringAsync();
return await JsonConvert.DeserializeObjectAsync<T>(res);

POST:

HttpResponseMessage response = _client.PostAsync("/post", new StringContent(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json")).Result;
string res = await response.Content.ReadAsStringAsync();
return await JsonConvert.DeserializeObjectAsync<T>(res);

METTRE:

HttpResponseMessage response = _client.PutAsync("/put", new StringContent(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json")).Result;
string res = await response.Content.ReadAsStringAsync();
return await JsonConvert.DeserializeObjectAsync<T>(res);

Mais DeleteAsync() et ReadAsStringAsync() toujours me rendre null.

Selon RFC vous devez retourner le corps au moment de retourner le code d'état 200 OK.

Avez-vous essayé d'utiliser Fiddler pour voir ce qui se passe sur le fil?
Ne devrait pas faire une différence sur le résultat, mais aucune raison pourquoi vous bloquez (appel .Result) sur DeleteAsync au lieu de l'attente?
Erreur de débutant.

OriginalL'auteur Gaui | 2013-07-14