Sto cercando di implementare questo code example, ma ottenere un errore HttpRequestException
- "durante la copia di contenuto in uno streaming". quando viene chiamato il metodo ReadAsStringAsync()
. L'eccezione interna è "Impossibile accedere a un oggetto disposto". Sto usando Fiddler per fare la richiesta. Non capisco. Qualcuno può spiegare perché sto ricevendo questa eccezione e offro una soluzione?Richiesta Web Api genera "Errore durante la copia del contenuto in un flusso".
Web metodo API:
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:
ho un indizio, ma bisogno di verifica. Sul controller Api Web, ho un ActionFilterAttribute
e nella sua OnActionExecuting
override, c'è questa linea:
public override async void OnActionExecuting(HttpActionContext actionContext)
{
// omitted code
actionContext.Request.Content.ReadAsStreamAsync();
}
Potrebbe essere che perché il contenuto viene letto qui, non è ancora disponibile? In tal caso, come posso renderlo disponibile nel metodo? Il contenuto è lo stesso di HttpRequestMessage? This potrebbe contenere una risposta.
Come stai chiamando questo metodo? –
@YuvalItzchakov ... Sto usando Fiddler –
Questo metodo è un'azione API Web? –