我真的不知道如何正确地将下面的调用转换为SpringWebFlux webclient。
userIds是列表,我可以使用以下语法调用该服务,但我无法使用SpringWebFlux WebClient。如果你们中有人知道怎么做,请帮助我。
String url = "http://profile.service.com/v1/profiles/bulk";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
ResponseEntity<List<MiniProfile>> responseEntity;
try {
responseEntity = restTemplate.exchange(url, HttpMethod.POST, new
HttpEntity(userIds, headers), new
ParameterizedTypeReference<List<MiniProfile>>() {});
} catch (RestClientException e) {
responseEntity = new ResponseEntity<List<MiniProfile>>(HttpStatus.OK);
}
return responseEntity.getBody();
这是我将其翻译到Webflux WebClient的方式:
Flux<String> flux = Flux.fromIterable(userIds);
return readWebClient.post().uri("/v1/profiles/bulk")
.body(BodyInserters.fromPublisher(flux, String.class))
.retrieve().bodyToFlux(MiniProfile.class);
**您可以参考下面提到的代码片段**
WebClient.post().uri(endPointUrl)
.contentType(MediaType.APPLICATION_XML)
.body(Mono.just(xmlEntity), String.class)
.retrieve()
使用. body Value(userIds)
或. syncBody(userIds)
(已弃用)代替带Body插入器的body
你不应该改变你的列表到流量,你应该发送它作为列表像这样
return readWebClient.post()
.uri("/v1/profiles/bulk")
.syncBody(userIds)
.retrieve()
.bodyToFlux(new ParameterizedTypeReference<List<MiniProfile>>() {})
.flatMapIterable(Function.identity());
此代码未经测试,但原理相同
我正在编写一个Spring5Web应用程序,我的要求是获得一个url编码的表单,并将url编码的响应发送回来 这是路由器功能代码 这是我的处理程序代码 这是我得到的错误 2020-04-07 02:37:33.329调试38688---[ctor-http-nio-3]组织。springframework。网状物HttpLogging:[07467aa5]已解决HTTP POST/formnew的
我创建了spring boot 2.0演示应用程序,其中包含两个使用WebClient进行通信的应用程序。当我从WebClient的响应中使用Flux的block()方法时,它们经常停止通信。由于某些原因,我想使用列表而不是通量。 服务器端应用程序是这样的。它只返回Flux对象。 而客户端(或BFF端)应用程序是这样的。我从服务器获取Flux,并通过调用block()方法将其转换为List。 虽然
问题内容: 我经常去一个网站查找东西。我对自己心想:“继续。我可以编程。当我可以编写一个可以为我做的软件时,为什么要手动进入该站点?”。 所以我开始了。我正在使用C#,所以我找到了WebClient和Uri。 我已经设法获取了该站点的源代码,但是问题出在加载源代码之后,我要查找的特定数据是通过AJAX生成的。 那就是我的问题。如果需要先通过AJAX调用来请求,该如何获取该代码? 问题答案: 通用方
我正在使用Spring 5 WebClient进行一个外部api调用,希望将响应映射到这样的Object: 但是我收到一个错误: 但是,如果我像这样将响应正文提取到字符串: 然后它就正常工作了。有什么办法解决这个问题吗? 编辑: 响应正文: 标题:
关于Spring WebFlow WebClient的小问题,尤其是如何配置一个使用TLSv1.2发送出站请求的问题。 我的应用程序是Spring WebFlow 2.4.2,其中启用了HTTP/2、SSL、mTLS和TLSv1.3。 注意它是TLSv1。3,而不是设置上的TLSv1,2。 创建WebClient实例时: 并使用它向TLSv1发送请求。3启用服务器,工作正常,非常开心。 但是,我需
我有一个顶点,它有一个处理程序,可以在事件循环线程中调用Vertx的Web客户端。实际的底层API调用是同步的还是异步的?它会阻塞我的事件循环线程吗?假设我的API调用需要30秒才能返回。 我是否需要用Vertx.execute阻塞(p-