HttpRequestHeaderCollection.TransferEncoding 属性

定义

获取 HttpTransferCodingHeaderValue 对象的 HttpTransferCodingHeaderValue 对象,该对象表示 HTTP 请求上的 Transfer-Encoding HTTP 标头的值。

public:
 property HttpTransferCodingHeaderValueCollection ^ TransferEncoding { HttpTransferCodingHeaderValueCollection ^ get(); };
HttpTransferCodingHeaderValueCollection TransferEncoding();
public HttpTransferCodingHeaderValueCollection TransferEncoding { get; }
var httpTransferCodingHeaderValueCollection = httpRequestHeaderCollection.transferEncoding;
Public ReadOnly Property TransferEncoding As HttpTransferCodingHeaderValueCollection

属性值

HttpTransferCodingHeaderValue 对象的集合,这些对象表示 HTTP 请求上的 Transfer-Encoding HTTP 标头的值。 空集合表示标头不存在。

注解

HttpClient 支持的唯一传输编码值是分块的,即使 HttpTransferCodingHeaderValue 对象的 HttpTransferCodingHeaderValueCollection 对象支持设置其他值。

如果 HttpRequestMessage 以未指定内容长度或未使用 HttpClient 上的 方法或 HTTP 内容类上的方法之一作为 发送,则无需手动将传输编码值设置为分块。

以下示例代码演示了一个方法,该方法使用 HttpRequestHeaderCollection 对象的 TransferEncoding 属性在 HttpRequestMessage 对象上设置 Transfer-Encoding 标头。

void DemoTransferEncoding(HttpRequestMessage m) {
    var h = m.Headers;

    uiLog.Text += "\nTRANSFERENCODING HEADER\n";
    // Transfer-Encoding: chunked
    var okTryParseAdd = h.TransferEncoding.TryParseAdd("chunked");
    okTryParseAdd = h.TransferEncoding.TryParseAdd("mini; a=b; c=d; e=f");
    h.TransferEncoding.Add(new HttpTransferCodingHeaderValue("cab"));
    h.TransferEncoding.TryParseAdd("newtype, othernewtype");

    // TransferEncoding is a HttpTransferCodingHeaderValueCollection
    // A collection of HttpTransferCodingHeaderValue

    // HttpTransferCodingHeaderValue has three items:
    // Value (string); for example, "compress"
    // Parameter (IList<HttpNameValueHeaderValue>)
    //

    foreach (var item in h.TransferEncoding) {
        // item has: Value (string), Parameter IList<HttpNameValueHeaderValue>
        var parameterString = "";
        foreach (var parameter in item.Parameters) {
            parameterString += string.Format("[{0}={1}] ", parameter.Name, parameter.Value);
        }
        if (parameterString == "") {
            parameterString = "(no parameters)";
        } 
        uiLog.Text += string.Format("Value: {0} Parameters: {1} ToString: {2}\n", item.Value, parameterString, item.ToString());
    }
    uiLog.Text += string.Format("TransferEncoding: ToString: {0}\n\n", h.TransferEncoding.ToString());
}

适用于

另请参阅