13

チャンク方式でファイルをアップロードできるAPIを作成しています。

このStackoverflowの質問と回答を見ると、content-rangeヘッダーがこれに最も適しているようです。

ただし、コントローラーアクションでは、ヘッダーが削除されているため、アクセスできません。'range'ヘッダーを使用すると、リクエストヘッダーコレクションで利用できます。

Content-Rangeがリクエストから削除される理由を誰かが知っていますか?

4

1 に答える 1

9

それは剥ぎ取られません。Request.Content.Headersでそれを探してください。ヘッダーをHTTP/1.1仕様に合わせたようです。つまり、エンティティヘッダーをRequest.Content.Headersに移動します。
サンプルリクエストで試してみたところ、見つかりました。

RFC 2616の関連セクションを読んだ後、この変更を見つけました。筆頭著者であるフィールディングがRESTアーキテクチャスタイルの発明者でもあるため、最近この問題を検討してきました。ASP.NETWebAPIを使用してそのスタイルに従おうとしています。

「リクエスト」、「レスポンス」、「一般」(リクエストとレスポンスの両方で使用されますが、エンティティ関連ではありません)と「エンティティ」ヘッダーには違いがあることに気付きました。

ASP.NETチームがRFCをより適切に反映するようにクラスモデルを改訂し、HttpHeadersの3つのサブクラスを作成したように見えます。

  • 「5.3リクエストヘッダーフィールド」および「4.5一般ヘッダーフィールド」のHttpRequestHeaders
  • 「6.2応答ヘッダーフィールド」および「4.5一般ヘッダーフィールド」のHttpResponsHeaders
  • 「7.1エンティティヘッダーフィールド」のHttpContentHeaders

これらは、MSDNの3つのクラスの逐語的な説明です(リンクは私のものです)。

MSDNクラスの説明は少し間違っていることに注意してください。RFCにはコンテンツヘッダーの定義はありませんが、エンティティヘッダーを意味していることは明らかです。

于 2012-10-31T23:40:36.987 に答える