go-chiを使ってAPIゲートウェイを開発しようとしています。リクエストのクエリに「_always200=true」が含まれている場合、ステータス コードを 200 に設定したいと考えています。 私が試したことは次のとおりです。 custom_response_writer.go:
リーリーミドルウェア:
リーリー常に 404 を返します。この問題を解決する方法はありますか?
コードには少なくとも 2 つの問題があります。
always200, _ := r.Context().Value(always200QueryKey).(bool)
は、クエリ パラメーターを取得する正しい方法ではありません。 r.URL.Query().Get("_always200")
を使用してそれを読み取り、値を文字列 "true"
と比較する必要があると思います。
next.ServeHTTP(crw, r)
の後に crw.WriteHeader(http.StatusOK)
を呼び出すには遅すぎます。コードをテストすると、次の警告メッセージが出力されました:
次は、応答ステータス コードを変更するための変更例です。
リーリー以上がミドルウェアを使用してhttpリクエストのレスポンスコードを変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。