java - 如何使用 Spring WebClient 禁用 cookie

标签 java spring-boot kotlin spring-webflux reactor-netty

有谁知道是否有办法使用 Reactor Netty HttpClient 在 Spring WebClient 中禁用 cookie 管理?

我注意到了 WebClient.BuilderHttpClient API 提供了一种将 cookie 添加到出站请求的方法,但我正在寻找一种方法来完全禁止它们(如果存在)。这类似于 Apache 的 HttpComponentClientBuilder 上的 disableCookieManagement .

最佳答案

看起来没有办法禁用 cookie 处理本身,但这似乎有效:创建您自己的 HttpClient,然后使用 HttpClient.doOnRequest 注册一个回调,以便在发送请求之前调用。在回调中,调用 HttpClientRequest.requestHeaders() 以检索请求 header ,然后删除 Cookie header 。

在发送请求之前删除 User-Agent header 的示例代码。

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

关于java - 如何使用 Spring WebClient 禁用 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54394813/

相关文章:

java - 尝试在 java 中使用首选项但需要管理员权限(需要在 Windows 和 MAC 上工作)

java - spring boot 应用程序运行,但我在网络浏览器中收到错误 404

android - 总是创建延迟初始化的对象

spring - gradle中没有发生分析

java - 如何使用java查询mongodb “start with”

android - Kotlin:如何简化这个过滤器 firstNorNull 调用链?

java - 重用 PreparedStatement 时可能会发生资源泄漏?

java - Selenium WebDriver出现异常怎么办?

java - 在 Spring 中列出方面代理的 Bean

java - 错误消息 :Failed to execute goal org. apache.maven.plugins :maven-compiler-plugin:3. 5.1:在项目上编译:编译失败