リアクティブ Web クライアントを 3XX リダイレクトに従わせるにはどうすればよいでしょうか? 質問する

リアクティブ Web クライアントを 3XX リダイレクトに従わせるにはどうすればよいでしょうか? 質問する

netty を使用して Spring-boot 2 のリアクティブ Web クライアントを使用してリクエストを行う基本的な REST コントローラーを作成しました。

@RestController
@RequestMapping("/test")
@Log4j2
public class TestController {

    private WebClient client;

    @PostConstruct
    public void setup() {

        client = WebClient.builder()
                .baseUrl("http://www.google.com/")
                .exchangeStrategies(ExchangeStrategies.withDefaults())
                .build();
    }


    @GetMapping
    public Mono<String> hello() throws URISyntaxException {
        return client.get().retrieve().bodyToMono(String.class);
    }

}

3XX 応答コードが返ってきたら、Web クライアントが応答内の場所を使用してリダイレクトに従い、3XX 以外の応答が返されるまでその URI を再帰的に呼び出すようにします。

実際に得られる結果は 3XX 応答です。

ベストアンサー1

クライアントを次のように設定する必要があります。ドキュメント

           WebClient.builder()
                    .clientConnector(new ReactorClientHttpConnector(
                            HttpClient.create().followRedirect(true)
                    ))

おすすめ記事