Как отключить куки с помощью Spring WebClient - PullRequest
0 голосов
/ 28 января 2019

Кто-нибудь знает, есть ли способ отключить управление файлами cookie в Spring WebClient с помощью Reactor Netty HttpClient?

Я заметил, что оба WebClient.Builder и HttpClient API предоставляютсредство для добавления файлов cookie в исходящий запрос, но я ищу способ их вообще запретить, если таковые существуют.Это похоже на disableCookieManagement в HttpComponentClientBuilder Apache .

1 Ответ

0 голосов
/ 28 января 2019

Похоже, что нет способа отключить обработку файлов cookie как таковую, но, похоже, это работает: создайте свой собственный HttpClient, затем используйте HttpClient.doOnRequest, чтобы зарегистрировать обратный вызов, который будет вызываться перед отправкой запроса.В обратном вызове вызовите HttpClientRequest.requestHeaders (), чтобы получить заголовки запроса, затем удалите заголовок Cookie.

Пример кода, который удаляет заголовок User-Agent перед отправкой запроса.

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());
    }
}
...