ミドルウェアを使用してhttpリクエストのレスポンスコードを変更するにはどうすればよいですか?

WBOY
リリース: 2024-02-08 21:00:04
転載
539 人が閲覧しました

ミドルウェアを使用してhttpリクエストのレスポンスコードを変更するにはどうすればよいですか?

質問内容

go-chiを使ってAPIゲートウェイを開発しようとしています。リクエストのクエリに「_always200=true」が含まれている場合、ステータス コードを 200 に設定したいと考えています。 私が試したことは次のとおりです。 custom_response_writer.go

リーリー

ミドルウェア:

リーリー

常に 404 を返します。この問題を解決する方法はありますか?


正解


コードには少なくとも 2 つの問題があります。

  1. always200, _ := r.Context().Value(always200QueryKey).(bool) は、クエリ パラメーターを取得する正しい方法ではありません。 r.URL.Query().Get("_always200") を使用してそれを読み取り、値を文字列 "true" と比較する必要があると思います。

  2. next.ServeHTTP(crw, r) の後に crw.WriteHeader(http.StatusOK) を呼び出すには遅すぎます。コードをテストすると、次の警告メッセージが出力されました:

    リーリー

次は、応答ステータス コードを変更するための変更例です。

リーリー

以上がミドルウェアを使用してhttpリクエストのレスポンスコードを変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!