Sto tentando di registrare le intestazioni di risposta HTTP del mio progetto API Web.Nessuna intestazione risposta in DelegatingHandler
Il progetto è sviluppato da VS2012, .NET 4.5 e ASP.NET MVC 4.
ho scritto un DelegatingHandler
sottoclasse come questo:
public class LoggingHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
// Execute the request
return base.SendAsync(request, cancellationToken).ContinueWith(task =>
{
var response = task.Result;
return response;
});
}
}
Tuttavia, il problema è, posso ottenere i valori dell'intestazione dal response
. response.Headers
è una raccolta vuota, response.Content.Headers
non contiene nient'altro che una chiave denominata Content-Type
e HttpContext.Current
è null
.
Ho visto il codice di WebAPIContrib che utilizza la stessa logica per registrare le intestazioni, ma il loro codice non sembra funzionare neanche.
Quindi, come devo tracciare le intestazioni di risposta HTTP nel progetto API Web?
Stesso problema qui. hai una soluzione? – erwineberhard
No, non l'ho mai scoperto –
Ho risolto il problema inviando le intestazioni di risposta al client invece di modificare il messaggio di risposta nel gestore delegante. Molto più facile anche nel mio framework javascript! – erwineberhard