1. ホーム
  2. c#

HttpResponseMessageヘッダーにContent-Typeヘッダーを設定することはできませんか?

2023-07-25 01:01:53

質問

ASP.NET WebApiを使用して、RESTful APIを作成しています。 私は私のコントローラの1つでPUTメソッドを作成しており、コードは次のようになります。

public HttpResponseMessage Put(int idAssessment, int idCaseStudy, string value) {
    var response = Request.CreateResponse();
    if (!response.Headers.Contains("Content-Type")) {
        response.Headers.Add("Content-Type", "text/plain");
    }

    response.StatusCode = HttpStatusCode.OK;
    return response;
}

その場所にAJAXでブラウザでPUTすると、こんなExceptionが出ます。

ヘッダ名の誤用です。リクエストヘッダはHttpRequestMessageで、レスポンスヘッダはHttpResponseで使用されているか確認してください。 HttpRequestMessage、応答ヘッダは HttpResponseMessage、コンテンツヘッダは HttpContent オブジェクトで使用されていることを確認してください。 コンテンツヘッダは HttpContent オブジェクトで使用されていることを確認してください。

しかし Content-Type はレスポンスのための完全に有効なヘッダではないでしょうか? なぜこの例外が発生するのでしょうか?

どのように解決するのですか?

このページでは HttpContentHeaders.ContentType プロパティを参照してください。 :

response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");


if (response.Content == null)
{
    response.Content = new StringContent("");
    // The media type for the StringContent created defaults to text/plain.
}