Wenn ich verwende DeleteAsync
Funktion in HttpClient
(System.Net.Http) und rufen Sie den Inhalt mit Content.ReadAsStringAsync()
ich null
zurück immer bekommen.HttpClient.DeleteAsync und Content.ReadAdStringAsync immer null zurück
Ich habe das gleiche mit GET
, POST
und PUT
versucht - und sie immer ein Ergebnis zurückgeben.
Hier ist mein 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);
Ich bekomme immer null
zurückgegeben.
jedoch all dies funktioniert:
GET:
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);
PUT:
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);
Aber DeleteAsync()
und ReadAsStringAsync()
immer wieder zurückkehren mich null
.
Nach RFC müssen Sie Körper zurückgeben, wenn Sie den Statuscode 200 OK zurückgeben.
erhalten Haben Sie [Fiedler] (http://fiddler2.com/) zu verwenden versucht, um zu sehen, Was passiert auf dem Draht? –
Sollte das Ergebnis keinen Unterschied machen, aber einen Grund, warum Sie "DeleteAsync" blockieren (".Result" aufrufen), anstatt darauf zu warten? – cremor
@cremor Anfängerfehler. – Gaui