C#のhttpwebrequestおよびwebrequestクラスを使用する際、setメソッドでもaddメソッドでも、例えばヘッダーのホストプロパティを設定するなど、httpリクエストのヘッダーを設定しようとすると:
エラーは「このヘッダーは適切な属性またはメソッドで修正しなければならない」とエラーします。
// 概要: HTTPリクエストにおいて、リクエストURIとは独立してホストヘッダー値を使用できるように取得または設定します。 // 結果の返却: HTTPリクエストにおけるホストヘッダーの値。 // 異常: System.ArgumentNullException: ホストヘッダーはnullに設定できません。 // System.ArgumentException: ホストヘッダーは無効な数値に設定できません。 // System.InvalidOperationException: System.Net.HttpWebRequestsの送信を始めた後はホストヘッダーの設定ができません。 public string Host { get; セット; }
理由:C#ではset and addメソッドを使ってそのようなヘッダーを設定することはできません C#はすでにそのようなヘッダー用の専用属性を提供しており、このヘッダーを修正・設定する際に使えます。 ヘッダー名と対応する属性は以下のように設定されます: | ヘッダー | セットアップ | | 受け入れろ | 財産を受け入れる。 | | 接続 | ConnectionプロパティとKeepAliveプロパティによって設定されます。 | | 内容の長さ | ContentLengthプロパティによって設定されます。 | | コンテンツタイプ | ContentTypeプロパティでsetbyを選びます。 | | 期待してください | Expectプロパティによって設定されます。 | | 日付 | Dateプロパティによって設定されます。 | | ホスト | ホスト物件。 | | もし修正されたなら | IfModifiedSince プロパティによって設定されます。 | | 範囲 | AddRangeメソッドで設定します。 | | リファラー | Refererプロパティによって設定されます。 | | 転送符号化 | TransferEncodingプロパティによって設定されます(SendChunkedプロパティはtrueでなければなりません)。 | | ユーザーエージェント | UserAgentプロパティです。 |
|