[解決済み] ASP.NET Web APIがプレーンテキストを返すように強制する方法はありますか?
2022-07-07 19:36:04
質問
ASP.NET Web APIコントローラから、プレーンテキストで応答を返す必要があります。
私は
Accept: text/plain
でリクエストしてみましたが、うまくいかないようです。
その上、リクエストは外部であり、私のコントロールから外れています。私が達成したいことは、古いASP.NETの方法を模倣することです。
context.Response.ContentType = "text/plain";
context.Response.Write("some text);
何かアイデアはありますか?
EDIT、解決策 : Aliostad さんの回答を元に、以下のように WebAPIContrib のテキストフォーマッターを追加し、Application_Startで初期化しました。
config.Formatters.Add(new PlainTextFormatter());
といった具合に、私のコントローラはこんな感じになりました。
[HttpGet, HttpPost]
public HttpResponseMessage GetPlainText()
{
return ControllerContext.Request.CreateResponse(HttpStatusCode.OK, "Test data", "text/plain");
}
どのように解決するのですか?
うーん...。カスタムフォーマッターを作成する必要はないでしょう。代わりに、このようなコンテンツを返します。
[HttpGet]
public HttpResponseMessage HelloWorld()
{
string result = "Hello world! Time is: " + DateTime.Now;
var resp = new HttpResponseMessage(HttpStatusCode.OK);
resp.Content = new StringContent(result, System.Text.Encoding.UTF8, "text/plain");
return resp;
}
これは、カスタムフォーマッターを使わなくても動作します。
もし明示的に出力を作成し、Accept ヘッダに基づいた デフォルトのコンテントネゴシエーションを上書きしたい場合には
Request.CreateResponse()
を使いたくないでしょう。
代わりに、明示的に新しい
HttpResponseMessage
を作成し、コンテンツを手動で割り当てます。上の例では
StringContent
を使用していますが、様々な.NETデータ型/構造体からデータを返すために、他にもかなり多くのコンテンツクラスが利用可能です。
関連
-
ASP.NET Core 6で依存関係を解決する3つの方法
-
ネットパフォーマンスチューニング - ArrayPool 詳細
-
[解決済み] Chromeを使用してASP.NET Web APIがXMLの代わりにJSONを返すようにするにはどうすればよいですか?
-
[解決済み] ASP.NET WebサイトとASP.NET Webアプリケーションのどちらを選ぶか?
-
[解決済み] ASP.NET Web APIに整数の配列を渡しますか?
-
[解決済み] ASP.NET Web APIでエラーを返すためのベストプラクティス
-
[解決済み】ASP.NET Web APIでコントローラからバイナリファイルを返す。
-
[解決済み】ASP.NET Web APIのJWT認証について
-
[解決済み】ASP.NET Web APIを使用したセッションへのアクセス
-
[解決済み] WatiNかSeleniumか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ASP.NET Core ディペンデンシーインジェクションの詳細
-
swagger uiをasp.net coreに統合する原理
-
名前 'xxx' が現在のコンテキストに存在しない エラー解決方法の1つ
-
デバッグエラー蓄積
-
[解決済み] IIS 500.19 with 0x80070005 The requested page cannot be accessed because the related configuration data for the page is invalid error.
-
[解決済み] IIS7 の「クラシック」パイプラインモードと「統合」パイプラインモードの違いは何ですか?
-
[解決済み] ASP.NET MVCのAjaxポストでantiforgerytokenを含める。
-
[解決済み] データ入力後に文字列をトリミングする最適な方法。モデルバインダーをカスタムで作成した方が良いですか?
-
[解決済み] ASP.NET_SessionId + OWIN Cookieがブラウザに送信されない。
-
[解決済み] FormsAuthentication.SignOut()がユーザーをログアウトしない