小编QzW*_*WXQ的帖子

在 Spring Webflux 中添加的多个 cookie 未合并到单个 HTTP 标头中

我正在尝试使用包含多个 cookie 的 Spring Webflux 的 WebClient 发送请求。我的代码如下所示:

Mono<Void> loginCall = webClient.post()
                           .uri("/Sites/Login")
                           .cookie("key1", "value1")
                           .cookie("key2", "value2")
                           .cookie("key3", "value3")
                           .exchange()
                           .flatMap(clientResponse -> clientResponse.bodyToMono(Void.class));
Run Code Online (Sandbox Code Playgroud)

我在端点上收到的内容如下所示(注意多个 cookie 标头):

$ nc -l -p 8989
POST /Sites/Login HTTP/1.1
user-agent: ReactorNetty/0.8.11.RELEASE
host: localhost:8989
accept: */*
transfer-encoding: chunked
cookie: key1=value1
cookie: key2=value2
cookie: key3=value3
Run Code Online (Sandbox Code Playgroud)

我的期望是收到这样的 HTTP 请求(单个 cookie 标头):

cookie: key1=value1; key2=value2; key3=value3
Run Code Online (Sandbox Code Playgroud)

我正在使用 Spring Boot 2.1.8。

我尝试了很多方法,但我尝试的所有方法都会导致多个 cookie 标头。HTTP 规范非常清楚不能使用多个 cookie 标头(并且我的 Web 服务器接收此请求也不喜欢它)。

如何向 WebClient 请求添加多个 cookie,以便将它们合并到单个 HTTP 标头中?(是的,我可以开始手动设置标题并合并 cookie,但这不知何故感觉不对)

java cookies spring spring-webflux

6
推荐指数
1
解决办法
692
查看次数

标签 统计

cookies ×1

java ×1

spring ×1

spring-webflux ×1