Jetty バージョン 8 を使用して http 投稿を送信するプログラムがあります。応答ハンドラーは機能しますが、リダイレクトである http 応答コード 303 が返されます。jetty 8 がこれらのリダイレクトに従うことをサポートしているというコメントを読みましたが、設定方法がわかりません。javadocsを調べてみたところ、 RedirectListener クラスが見つかりましたが、使用方法の詳細はありません。コーディング方法を推測しようとしてもうまくいかなかったので、行き詰まっています。すべての助けに感謝します!
編集
jetty のソース コードを調べたところ、応答コードが 301 または 302 の場合にのみリダイレクトされることがわかりました。RedirectListener をオーバーライドして、repose コード 303 も処理できるようにすることができました。その後、Joakim のコードは完全に機能します。
public class MyRedirectListener extends RedirectListener
{
public MyRedirectListener(HttpDestination destination, HttpExchange ex)
{
super(destination, ex);
}
@Override
public void onResponseStatus(Buffer version, int status, Buffer reason)
throws IOException
{
// Since the default RedirectListener only cares about http
// response codes 301 and 302, we override this method and
// trick the super class into handling this case for us.
if (status == HttpStatus.SEE_OTHER_303)
status = HttpStatus.MOVED_TEMPORARILY_302;
super.onResponseStatus(version,status,reason);
}
}