HttpResponseHeaderCollection 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供與 HTTP 回應相關聯的 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
- 繼承
- 屬性
- 實作
-
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
Windows 需求
裝置系列 |
Windows 10 (已於 10.0.10240.0 引進)
|
API contract |
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)
|
範例
下列範例程式碼示範如何使用 HttpResponseHeaderCollection 物件上的屬性,在 HttpResponseMessage 物件上取得和設定回應標頭的方法。 Windows.Web.Http.Headers命名空間具有許多強型別標頭集合,以及特定 HTTP 標頭的值類別,可用來取得和設定具有驗證的標頭。
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());
}
備註
HttpResponseHeaderCollection 是與 HTTP 要求訊息之 HTTP 回應相關聯的 HTTP 標頭集合。 HttpResponseHeaderCollection 物件可用來取得或設定 HTTP 回應上的特定標頭。 HttpResponseHeaderCollection 物件上的大部分屬性都會提供特定 HTTP 標頭值的存取權。
HttpResponseMessage上的Headers屬性會傳回 HttpResponseHeaderCollection 物件。 這是如何建構 HttpResponseHeaderCollection。
列舉 C# 或 Microsoft Visual Basic 中的集合
您可以在 C# 或 Microsoft Visual Basic 中逐一查看 HttpResponseHeaderCollection 物件。 在許多情況下,例如使用 foreach 語法,編譯器會為您執行此轉換,而且您不需要明確地轉換成 IEnumerable
。 如果您需要明確轉換,例如,如果您想要呼叫GetEnumerator,請將集合物件轉換成具有String和String的 KeyValuePair 作為條件約束的IEnumerable < T >。
屬性
Age |
取得或設定 TimeSpan 物件,代表 HTTP 回應上 Age HTTP 標頭的值。 |
Allow |
取得 HttpMethodHeaderValueCollection 的 HttpMethod 物件,代表 HTTP 回應上 Allow HTTP 標頭的值。 |
CacheControl |
取得 物件的 HttpCacheDirectiveHeaderValueCollection ,這些物件代表 HTTP 回應上 Cache-Control HTTP 標頭的值。 |
Connection |
取得 HttpConnectionOptionHeaderValueCollection 的 HttpConnectionOptionOptionHeaderValue 物件,這些物件代表 HTTP 回應上 Connection HTTP 標頭的值。 |
Date |
取得或設定 DateTime 物件,表示 HTTP 回應上 Date HTTP 標頭的值。 |
Location |
取得或設定 URI ,表示 HTTP 回應上的值或 位置 HTTP 標頭。 |
ProxyAuthenticate |
取得 HttpChallengeHeaderValueCollection 的 HttpChallengeHeaderValue 物件,這些物件代表 HTTP 回應上 Proxy-Authenticate HTTP 標頭的值。 |
RetryAfter |
取得或設定 HttpDateOrDeltaHeaderValue 物件,代表 HTTP 回應上 Retry-After HTTP 標頭的值。 |
Size |
取得 HttpResponseHeaderCollection中的物件數目。 |
TransferEncoding |
取得 HttpTransferCodingHeaderValueCollection 的 HttpTransferCodingHeaderValue 物件,這些物件代表 HTTP 回應上 Transfer-Encoding HTTP 標頭的值。 |
WwwAuthenticate |
取得 HttpChallengeHeaderValueCollection的 HttpChallengeHeaderValue 物件,這些物件代表 HTTP 回應上 WWW-Authenticate HTTP 標頭的值。 |
方法
Append(String, String) |
將新專案新增至 HttpResponseHeaderCollection的結尾。 |
Clear() |
從集合中移除所有物件。 |
First() |
擷取反覆運算器至 HttpResponseHeaderCollection中的第一個專案。 |
GetView() |
會傳回 HttpResponseHeaderCollection的不可變檢視。 |
HasKey(String) |
判斷 HttpResponseHeaderCollection 是否包含指定的索引鍵。 |
Insert(String, String) |
以指定的索引鍵和值插入或取代 HttpResponseHeaderCollection 中的專案。 |
Lookup(String) |
查閱 HttpResponseHeaderCollection中的專案。 |
Remove(String) |
從 HttpResponseHeaderCollection中移除具有指定索引鍵的專案。 |
ToString() |
會傳回代表目前 HttpResponseHeaderCollection 物件的字串。 |
TryAppendWithoutValidation(String, String) |
請嘗試將指定的專案附加至 HttpResponseHeaderCollection ,而不需驗證。 |