2015-04-17 10 views
10

Poprzednio w WebApi (w .NET 4.x) mogliśmy pracować z nagłówkami zarówno żądania, jak i odpowiedzi poprzez wpisane interfejsy (zobacz HttpRequestMessage.Headers/HttpResponseMessage.Headers). Teraz w ASP.NET 5 mamy HttpRequest i HttpResponse z właściwością Headers typu IHeaderDictionary. Ale to po prostu nieopisany słownik.Gdzie wszystkie typy nagłówków HTTP są niedostępne w ASP.NET 5?

Poniżej zamieszczam przykład z wpisanym dostępem może zwrócić poprawioną odpowiedź http. Należy utworzyć HttpResponseMessage i wypełnić jego kolekcję nagłówków (która została wpisana btw).

HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK); 
response.Content = new StringContent(manifestContent); 
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/cache-manifest"); 
response.Headers.CacheControl = new CacheControlHeaderValue {NoCache = true, Public = true}; 
response.Headers.ETag = new EntityTagHeaderValue("\"" + etag + "\""); 

Odpowiedz

13

Jeśli dodać using dla Microsoft.AspNetCore.Http istnieją metody przedłużania na HttpRequest i HttpResponse do GetTypedHeaders, co powinno dać bezpieczeństwa typu, które chcesz.

W tym przykładzie dodałem również instrukcję using dla Microsoft.Net.Http.Headers, aby ją wyczyścić.

var headers = Response.GetTypedHeaders(); 
headers.ContentType = new MediaTypeHeaderValue("text/cache-manifest"); 
headers.CacheControl = new CacheControlHeaderValue { NoCache = true, Public = true }; 
headers.ETag = new EntityTagHeaderValue("\"" + etag + "\""); 

Źródło: aspnet/HttpAbstractions on Github

+0

Co HttpContextBase? – JoshYates1980

0

w Asp.net 5 na zbieranie nagłówków jest jedna grupa to HeaderDictionary, które mogą być stosowane zarówno w nagłówku żądania i odpowiedzi. Będzie to działać jako magazyn wartości kluczowych dla nagłówków. Dobry powód, dla którego widzę, wynika z wsparcia Owina. Jeden sklep może być używany w różnych obsługiwanych oprogramowaniu pośredniczącym Owin, np. WebApi, SignalR, który zapewnia możliwość rozszerzenia o dodatkowe informacje w kolekcji Header.

Powiązane problemy