Partager via


HttpResponseHeaderCollection Classe

Définition

Fournit une collection d’en-têtes HTTP associés à une réponse HTTP.

public ref class HttpResponseHeaderCollection sealed : IIterable<IKeyValuePair<Platform::String ^, Platform::String ^> ^>, IMap<Platform::String ^, Platform::String ^>, IStringable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class HttpResponseHeaderCollection final : IIterable<IKeyValuePair<winrt::hstring, winrt::hstring const&>>, IMap<winrt::hstring, winrt::hstring const&>, IStringable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class HttpResponseHeaderCollection final : IIterable<IKeyValuePair<winrt::hstring, winrt::hstring const&>>, IMap<winrt::hstring, winrt::hstring const&>, IStringable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class HttpResponseHeaderCollection : IDictionary<string,string>, IEnumerable<KeyValuePair<string,string>>, IStringable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class HttpResponseHeaderCollection : IDictionary<string,string>, IEnumerable<KeyValuePair<string,string>>, IStringable
Public NotInheritable Class HttpResponseHeaderCollection
Implements IDictionary(Of String, String), IEnumerable(Of KeyValuePair(Of String, String)), IStringable
Héritage
Object Platform::Object IInspectable HttpResponseHeaderCollection
Attributs
Implémente
IDictionary<String,String> IMap<Platform::String,Platform::String> IMap<winrt::hstring,winrt::hstring> IIterable<IKeyValuePair<K,V>> IEnumerable<KeyValuePair<K,V>> IEnumerable<KeyValuePair<String,String>> IIterable<IKeyValuePair<Platform::String,Platform::String>> IIterable<IKeyValuePair<winrt::hstring,winrt::hstring>> IStringable

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

L’exemple de code suivant montre une méthode permettant d’obtenir et de définir des en-têtes de réponse sur un objet HttpResponseMessage à l’aide des propriétés de l’objet HttpResponseHeaderCollection. L’espace de noms Windows.Web.Http.Headers possède un certain nombre de collections d’en-têtes fortement typées et de classes de valeur pour des en-têtes HTTP spécifiques qui peuvent être utilisées pour obtenir et définir des en-têtes avec validation.

using System;
using System.Collections.Generic;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Web.Http;
using Windows.Web.Http.Headers;

        void DemonstrateResponseHeaders() {

            DemonstrateHeaderResponseAge();
            DemonstrateHeaderResponseAllow();
            DemonstrateHeaderResponseCacheControl();
            DemonstrateHeaderResponseDate();
            DemonstrateHeaderResponseLocation();
            DemonstrateHeaderResponseProxyAuthenticate();

        }


        public void DemonstrateHeaderResponseAge()
        {
            var response = new HttpResponseMessage();

            // Set the header with a strong type.
            DateTimeOffset value = DateTimeOffset.UtcNow;
            response.Headers.Age = new TimeSpan(1, 35, 55); // 1 hour, 35 minutes, 55 seconds.

            // Get the strong type out
            System.Diagnostics.Debug.WriteLine("Age value in minutes: {0}", response.Headers.Age.Value.TotalMinutes);

            // The ToString() is useful for diagnostics, too.
            System.Diagnostics.Debug.WriteLine("The Age ToString() results: {0}", response.Headers.Age.ToString());
        }


        public void DemonstrateHeaderResponseAllow()
        {
            var response = new HttpResponseMessage();

            // Set the header with a string
            response.Headers.Allow.TryParseAdd ("GET");

            // Set the header with a strong type
            response.Headers.Allow.Add(HttpMethod.Patch);

            // Get the strong type out
            foreach (var value in response.Headers.Allow)
            {
                System.Diagnostics.Debug.WriteLine("Allow value: {0}", value.Method);
            }

            // The ToString() is useful for diagnostics, too.
            System.Diagnostics.Debug.WriteLine("The Allow ToString() results: {0}", response.Headers.Allow.ToString());
        }

        public void DemonstrateHeaderResponseCacheControl()
        {
            var response = new HttpResponseMessage();

            // Set the header with a string
            response.Headers.CacheControl.TryParseAdd("public");

            // Set the header with a strong type
            response.Headers.CacheControl.Add(new HttpNameValueHeaderValue("max-age", "30"));

            // Get the strong type out
            foreach (var value in response.Headers.CacheControl)
            {
                System.Diagnostics.Debug.WriteLine("CacheControl {0}={1}", value.Name, value.Value);
            }

            // The ToString() is useful for diagnostics, too.
            System.Diagnostics.Debug.WriteLine("The CacheControl ToString() results: {0}", response.Headers.CacheControl.ToString());
        }

        public void DemonstrateHeaderResponseDate()
        {
            var response = new HttpResponseMessage();

            // Set the header with a strong type.
            response.Headers.Date = DateTimeOffset.UtcNow;

            // Get the strong type out
            System.Diagnostics.Debug.WriteLine("Date value in ticks: {0}", response.Headers.Date.Value.Ticks);

            // The ToString() is useful for diagnostics, too.
            System.Diagnostics.Debug.WriteLine("The Date ToString() results: {0}", response.Headers.Date.ToString());
        }

        public void DemonstrateHeaderResponseLocation()
        {
            var response = new HttpResponseMessage();

            // Set the header with a strong type.
            response.Headers.Location = new Uri("http://example.com/");

            // Get the strong type out
            System.Diagnostics.Debug.WriteLine("Location absolute uri: {0}", response.Headers.Location.AbsoluteUri);

            // The ToString() is useful for diagnostics, too.
            System.Diagnostics.Debug.WriteLine("The Location ToString() results: {0}", response.Headers.Location.ToString());
        }

        public void DemonstrateHeaderResponseProxyAuthenticate()
        {
            var response = new HttpResponseMessage();

            // Set the header with a strong type.
            response.Headers.ProxyAuthenticate.TryParseAdd("Basic");
            response.Headers.ProxyAuthenticate.Add(new HttpChallengeHeaderValue("authScheme", "authToken"));

            // Get the strong type out
            foreach (var value in response.Headers.ProxyAuthenticate)
            {
                System.Diagnostics.Debug.WriteLine("Proxy authenticate scheme and token: {0} {1}", value.Scheme, value.Token);
            }

            // The ToString() is useful for diagnostics, too.
            System.Diagnostics.Debug.WriteLine("The ProxyAuthenticate ToString() results: {0}", response.Headers.ProxyAuthenticate.ToString());
        }

        public void DemonstrateHeaderResponseRetryAfter()
        {
            var response = new HttpResponseMessage();

            // Set the header with a strong type.
            HttpDateOrDeltaHeaderValue newvalue;
            bool parseOk = HttpDateOrDeltaHeaderValue.TryParse("", out newvalue);
            if (parseOk)
            {
                response.Headers.RetryAfter = newvalue;
            }

            // Get the strong type out
            System.Diagnostics.Debug.WriteLine("Date value in ticks: {0}", response.Headers.Date.Value.Ticks);

            // The ToString() is useful for diagnostics, too.
            System.Diagnostics.Debug.WriteLine("The Date ToString() results: {0}", response.Headers.Date.ToString());
        }

Remarques

HttpResponseHeaderCollection est une collection d’en-têtes HTTP associés à une réponse HTTP à un message de requête HTTP. L’objet HttpResponseHeaderCollection peut être utilisé pour obtenir ou définir les en-têtes spécifiques sur la réponse HTTP. La plupart des propriétés de l’objet HttpResponseHeaderCollection fournissent l’accès à la valeur d’un en-tête HTTP spécifique.

La propriété Headers sur HttpResponseMessage retourne un objet HttpResponseHeaderCollection. C’est ainsi qu’une HttpResponseHeaderCollection est construite.

Énumération de la collection en C# ou Microsoft Visual Basic

Vous pouvez itérer via un objet HttpResponseHeaderCollection en C# ou Microsoft Visual Basic. Dans de nombreux cas, comme l’utilisation de la syntaxe foreach , le compilateur effectue cette cast pour vous et vous n’aurez pas besoin d’effectuer IEnumerable un cast vers explicitement. Si vous avez besoin d’un cast explicite, par exemple si vous souhaitez appeler GetEnumerator, castez l’objet de collection en IEnumerable<T> avec un KeyValuePair de String et String comme contrainte.

Propriétés

Age

Obtient ou définit l’objet TimeSpan qui représente la valeur d’un en-tête HTTP Age sur une réponse HTTP.

Allow

Obtient le HttpMethodHeaderValueCollection des objets HttpMethod qui représentent la valeur d’un en-tête HTTP Allow sur une réponse HTTP.

CacheControl

Obtient le HttpCacheDirectiveHeaderValueCollection des objets qui représentent la valeur d’un en-tête HTTP Cache-Control sur une réponse HTTP.

Connection

Obtient le HttpConnectionOptionHeaderValueCollection des objets HttpConnectionOptionHeaderValue qui représentent la valeur d’un en-tête HTTP de connexion sur une réponse HTTP.

Date

Obtient ou définit l’objet DateTime qui représente la valeur d’un en-tête HTTP Date sur une réponse HTTP.

Location

Obtient ou définit l’URI qui représente la valeur ou un en-tête HTTP Location sur une réponse HTTP.

ProxyAuthenticate

Obtient le HttpChallengeHeaderValueCollection des objets HttpChallengeHeaderValue qui représentent la valeur d’un en-tête HTTP Proxy-Authenticate sur une réponse HTTP.

RetryAfter

Obtient ou définit l’objet HttpDateOrDeltaHeaderValue qui représente la valeur d’un en-tête HTTP Retry-After sur une réponse HTTP.

Size

Obtient le nombre d’objets dans httpResponseHeaderCollection.

TransferEncoding

Obtient le HttpTransferCodingHeaderValueCollection des objets HttpTransferCodingHeaderValue qui représentent la valeur d’un en-tête HTTP Transfer-Encoding sur une réponse HTTP.

WwwAuthenticate

Obtient le HttpChallengeHeaderValueCollection des objets HttpChallengeHeaderValue qui représentent la valeur d’un en-tête HTTP WWW-Authenticate sur une réponse HTTP.

Méthodes

Append(String, String)

Ajoute un nouvel élément à la fin de HttpResponseHeaderCollection.

Clear()

Supprime tous les objets de la collection.

First()

Récupère un itérateur vers le premier élément de httpResponseHeaderCollection.

GetView()

Renvoie une vue immuable de HttpResponseHeaderCollection.

HasKey(String)

Détermine si httpResponseHeaderCollection contient la clé spécifiée.

Insert(String, String)

Insère ou remplace un élément dans httpResponseHeaderCollection par la clé et la valeur spécifiées.

Lookup(String)

Recherchez un élément dans httpResponseHeaderCollection.

Remove(String)

Supprime un élément avec une clé donnée de httpResponseHeaderCollection.

ToString()

Renvoie une chaîne qui représente l’objet HttpResponseHeaderCollection actuel.

TryAppendWithoutValidation(String, String)

Essayez d’ajouter l’élément spécifié à HttpResponseHeaderCollection sans validation.

S’applique à

Voir aussi