小编laf*_*ual的帖子

Webflux WebClient 的 Cookie 管理

我有一个 WebClient 将带有登录凭据的 JSON 对象发送到远程服务器。然后远程服务器返回 cookie。之后,我需要将数据与 cookie 一起发布到该远程服务器。但是,我无法弄清楚如何在 POST 中重用 cookie。

据我所知,登录响应提供了以下结构MultiValueMap<String, ResponseCookie>,但是在 POST 上设置 cookie 的代码需要MultiValueMap<String, String>或只是cookie(String, String).

我想我一定缺少一些转换器魔法,但是什么?我什至需要退回整个饼干吗?

饼干看起来像这样;

{SSO_Sticky_Session-47873-loadBalancedAdminGrp=[SSO_Sticky_Session-47873-loadBalancedAdminGrp=BNAMAKAKJABP; Path=/; HttpOnly], AUTH_TOKEN=[AUTH_TOKEN=v0l3baVZejIKjdzA1KGpkz4ccnosE6rKLQig1D2bdb-voFmVrF_aaYgzWl3Yc8QK; Path=/], uid=[uid=sjzipQdBtU30OlVbPWtDK2625i24i6t6g3Rjl5y5XcI=; Path=/], __cfduid=[__cfduid=dd872f39fd1d3bfe2a5c7316cd9ff63cd1554623603; Path=/; Domain=.aDomain.net; Max-Age=31535999; Expires=Mon, 6 Apr 2020 07:53:23 GMT; HttpOnly], JSESSIONID=[JSESSIONID=A264A713AD060EE12DA8215AEF66A3C0; Path=/aPath/; HttpOnly]}
Run Code Online (Sandbox Code Playgroud)

我的代码如下。为简洁起见,我删除了内容类型;

WebClient webClient = WebClient.create("https://remoteServer");
MultiValueMap<String, ResponseCookie> myCookies;

webClient
  .post()
  .uri("uri/login")
  .body(Mono.just(myLoginObject), MyLogin.class)
  .exchange()
  .subscribe(r -> 
    System.err.println("Received:" + r.cookies());
    myCookies = r.cookies();
   );

webClient
  .post()
  .uri("/uri/data")
  .cookies(????) // what goes here ?? …
Run Code Online (Sandbox Code Playgroud)

java spring-webflux

10
推荐指数
1
解决办法
5770
查看次数

Java写入Windows Server 2016时,文件上次修改时未更新

我在Windows Server 2016上有一个Java 10应用程序,它使用java.util.logging不断写入文件.在Windows文件资源管理器中,"上次修改"和"大小"列不会更新.按[F5]不会更新详细信息.DOS DIR给出了同样错误的答案.右键单击>属性>详细信息提供了一个甚至不同(和更旧)的答案.

TYPE在文件的记事本中运行DOS 或打开/关闭(不保存),似乎导致文件资源管理器和DOS DIR更新.

我假设Java代码是正确的,flush()因为Windows Server 2008上的Java 8上的相同类导致文件资源管理器更新.另外,当运行TYPE和记事本时,我也看到与系统时钟匹配的带时间戳的记录,但在"上次修改"之后.

所以我假设Windows Server 2016有一些东西.任何想法要检查什么?

java java.util.logging java-10 windows-server-2016

7
推荐指数
1
解决办法
830
查看次数

合并热通量源

在带有 Reactor 的 Spring Boot 2 中,我尝试合并两个Flux热源。然而,似乎唯一报告了中两个参数中merge的第一个。我如何才能识别第二个。FluxmergemergeFlux

在下面的示例中,System.errinB-2甚至不打印whenoutgoing1a是第一个参数。如果我做了outgoing2第一个,则A-2不会打印。

下面是完整的例子;

package com.example.demo;

import java.time.Duration;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import reactor.core.publisher.Flux;
import reactor.core.scheduler.Schedulers;

public class Weather {
String city;
Integer temperature;

public Weather(String city, Integer temperature) {
    this.city = city;
    this.temperature = temperature;
}

@Override
public String toString() {
    return "Weather [city=" + city + ", temperature=" + temperature + "]";
}

public static …
Run Code Online (Sandbox Code Playgroud)

java project-reactor spring-webflux

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