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)
))