10

私が HttpResponseHeaders で目にする唯一のメソッドは、ヘッダー タイプに文字列タイプを取る Add です。.NET が文字列で HttpResponseHeader 型定数のリストを提供したのだろうか?

だから私はできる:

HttpResponseMessage response = Request.CreateResponse.........;
response.Headers.Add(xxxxx.ContentRange, "something");

HttpResponseHeader に Enum のリストがあることがわかりますが、対応する文字列値を提供していません...

つまり、HttpResponseHeader.ContentRange ですが、正しいヘッダー文字列は Content-Range である必要があります

間違っていたら訂正...

4

5 に答える 5

11

System.Net.Http.Headers名前空間には3つの強く型付けされたHTTPヘッダークラ​​スがあります。

HttpContentHeaders(HeadersSystem.Net.Http.HttpContentタイプのいずれかのプロパティを介してアクセス可能)には、Content-TypeContent-LengthContent-Encodingなどの事前定義されたプロパティがあります...(これはあなたのヘッダーのようです後だった)。

次のように設定できます。

var content = new StringContent("foo");
content.Headers.Expires = DateTime.Now.AddHours(4);
content.Headers.ContentType.MediaType = "text/plain";

...そしてヘッダー名は正しく設定されます。

于 2013-03-11T18:06:49.507 に答える
1

たぶん、あなたはこのようなことを試すことができます。

var whc = new System.Net.WebHeaderCollection();
whc.Add(System.Net.HttpResponseHeader.ContentRange, "myvalue");
Response.Headers.Add(whc);

webapi コンテキストでは、最後の行は次のようになります。

HttpContext.Current.Response.Headers.Add(whc);

とにかく、@ServiceGuyの答えはwebapi/mvcコンテキストに入る方法です

これが役立つことを願っています

于 2013-03-11T17:22:59.947 に答える
0

C# には、Enum から文字列への変換が組み込まれています。次の割り当てを検討してください。

int val = 5;
HttpResponseHeader header = HttpResponseHeader.Allow 

今、val.ToString()は文字列を返します"5"が、header.ToString()を返し"Allow"ます。だから私は謙虚に使用することをお勧めします

response.Headers.Add(HttpResponseHeader.ContentRange.ToString(), "something");
于 2013-03-11T17:34:38.980 に答える
0

HttpWebRequest.ContentTypeのように、WebRequest と WebResponse のプロパティで共通ヘッダーを取得および設定できます。

于 2013-03-11T17:25:37.363 に答える