Ich versuche, diese code example zu implementieren, aber erhalten Sie eine HttpRequestException
- "Fehler beim Kopieren von Inhalt in einen Stream." wenn die ReadAsStringAsync()
Methode aufgerufen wird. Die innere Ausnahme ist "Zugriff auf ein entsorgtes Objekt nicht möglich." Ich verwende Fiddler, um die Anfrage zu stellen. Ich verstehe nicht. Kann jemand erklären, warum ich diese Ausnahme bekomme und eine Lösung anbiete?Web API Anforderung verursacht "Fehler beim Kopieren von Inhalt in einen Stream."
Web Api Methode:
public async Task<HttpResponseMessage> Post(HttpRequestMessage request)
{
try
{
var jsonString = await request.Content.ReadAsStringAsync();
}
catch (Exception ex)
{
throw;
}
return new HttpResponseMessage(HttpStatusCode.Created);
}
Fiddler (POST):
User-Agent: Fiddler
Host: localhost:23567
Content-Length: 18
Content-Type: application/json; charset=utf-8
Body{"Test":1}
Edit:
Ich habe eine Ahnung, aber die Überprüfung benötigen. Auf dem Web-Api-Controller, ich habe ein ActionFilterAttribute
und in seinem OnActionExecuting
überschreibt, gibt es diese Zeile:
public override async void OnActionExecuting(HttpActionContext actionContext)
{
// omitted code
actionContext.Request.Content.ReadAsStreamAsync();
}
Könnte es sein, weil der Inhalt hier gelesen wird, es wieder nicht verfügbar ist? Wenn ja, wie kann ich es in der Methode zur Verfügung stellen? Ist der Inhalt hier derselbe wie die HttpRequestMessage? This kann eine Antwort enthalten.
Wie rufst du diese Methode an? –
@YuvalItzchakov ... Ich benutze Fiddler –
Ist diese Methode eine Web-API-Aktion? –