¿Alguien sabe si hay alguna forma de deshabilitar la administración de cookies en Spring WebClient usando Reactor Netty HttpClient?
Noté que las API de WebClient.Builder y HttpClient proporcionan un medio para agregar cookies a una solicitud saliente, pero estoy buscando una manera de inhibirlas por completo si existe. Eso es similar a disabledCookieManagement en disableCookieManagement de Apache .
Parece que no hay forma de deshabilitar el manejo de cookies per se, pero esto parece funcionar: cree su propio HttpClient, luego use HttpClient.doOnRequest para registrar una devolución de llamada antes de enviar la solicitud. En la devolución de llamada, llama a HttpClientRequest.requestHeaders() para recuperar los encabezados de la solicitud y luego elimina el encabezado de la Cookie .
Código de muestra que elimina el encabezado User-Agent antes de enviar la solicitud.
public class Main { public static void main(String[] args) { HttpClient httpClient = HttpClient.create().doOnRequest((request, connection) -> { request.requestHeaders().remove("User-Agent"); }); WebClient client = WebClient.builder() .clientConnector(new ReactorClientHttpConnector(httpClient)) .build(); Mono<String> r = client.get().uri("https://www.google.com").retrieve() .bodyToMono(String.class); System.out.println(r.block()); } }En mis pruebas, no veo que Reactor Netty HttpClient esté haciendo nada con las cookies que regresan en la respuesta. De hecho, estaba buscando habilitar un almacén de cookies como el que admite Apache HttpClient, pero según todas las indicaciones, Netty HttpClient no tiene esa característica.
En todo el código base de Reactor Netty , no se usa el encabezado "set-cookie", excepto en una de sus pruebas unitarias. Esto me dice que las cookies se ignoran de forma predeterminada a menos que el código del cliente decida buscarlas.