【问题标题】:Send Request Parameters in Spring Web client在 Spring Web 客户端中发送请求参数
【发布时间】:2019-01-15 22:13:43
【问题描述】:

我想在 Spring WebClient 请求链接中发送链接请求参数。例如:

https://www.test.com/notification?con=41280440000097&sec=1232

我试过这段代码:

WebClient client;

Map<String, String> map = new HashMap<>();

public Mono<Response> execute(Transaction transaction) {

    map.put("some_key", "some_value");

    Mono<PaymentTransaction> transactionMono = Mono.just(transaction);

    return client.post().uri("/notification", token)
                .accept(MediaType.APPLICATION_XML)
                .contentType(MediaType.APPLICATION_XML)
                .body(transactionMono, Transaction.class)
                .attributes(Consumer<map>)
                .retrieve()
                .bodyToMono(Response.class);
}

但是当我尝试设置地图时,我在令牌 "&gt;" 上出现语法错误,此之后的表达式预期

不将值硬编码到地址中​​的正确方法是什么?

【问题讨论】:

标签: java spring spring-webflux


【解决方案1】:

这行得通吗?

public Mono<PaymentResponse> execute(PaymentTransaction transaction, WebClient client) {
        long conn = 1L;
        int sec = 1232;

        Mono<PaymentTransaction> transactionMono = Mono.just(transaction);
        return client.post()
                .uri(uriBuilder -> uriBuilder.scheme("https").host("www.test.com")
                        .path("notification")
                        .queryParam("con", conn)
                        .queryParam("sec", sec)
                        .build())
                .accept(MediaType.APPLICATION_XML)
                .contentType(MediaType.APPLICATION_XML)
                .body(transactionMono, PaymentTransaction.class)
                .retrieve()
                .bodyToMono(PaymentResponse.class);
    }

【讨论】:

  • 伙计,我是唯一一个真正被这种新的多层深度嵌套语法关闭的人吗?
猜你喜欢
  • 2019-04-13
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多