当前位置: 首页 > 知识库问答 >
问题:

在WebClient请求中添加查询参数

索嘉胜
2023-03-14

我正在使用Spring WebFlux,我正在接受请求并使用相同的请求来调用另一个服务。但我不确定如何添加查询参数。这是我的代码

@RequestMapping(value= ["/ptta-service/**"])
suspend fun executeService(request: ServerHttpRequest): ServerHttpResponse {

    val requestedPath = if (request.path.toString().length > 13) "" else request.path.toString().substring(13)

    return WebClient.create(this.dataServiceUrl)
                    .method(request.method ?: HttpMethod.GET)
                    .uri(requestedPath)
                    .header("Accept", "application/json, text/plain, */*")
                    .body(BodyInserters.fromValue(request.body))
                    .retrieve()
                    .awaitBody()
                    // But how about query parameters??? How to add those
}

虽然代码在Kotlin中,但Java也会有所帮助。

共有1个答案

符允晨
2023-03-14

您可以在 uri 中使用 lambda 表达式添加查询参数,有关更多信息,请参阅 WebClient.UriSpec

 return WebClient.create(this.dataServiceUrl)
                .method(request.method ?: HttpMethod.GET)
                .uri(builder -> builder.path(requestedPath).queryParam("q", "12").build())
                .header("Accept", "application/json, text/plain, */*")
                .body(BodyInserters.fromValue(request.body))
                .retrieve()
                .awaitBody()
 类似资料:
  • 我正在尝试在Spring Boot中使用WebClient制作API POST Request。但是我无法使用JSON正文发出我想要的请求并以JSONObject的形式接收响应。 JSON正文: 服务类别- 工作区模型- 主通话- 我需要发送一个JSON主体列表,作为主体post请求。请帮我做帖子请求提前谢谢

  • 我有一个使用. NET 6 Web API的应用程序。一旦用户登录到应用程序,关于该用户的基于小上下文的信息被附加到查询参数。 API中AuthPolicy的一部分是,当调用endpoint时,这些查询参数必须存在,即使该endpoint没有使用它们。 例如,此 终结点具有在请求正文中传递的实际输入,但 AuthPolicy 要求查询参数存在,即使未使用它也是如此。 有效EX: 无效的EX: 有没

  • 问题内容: 我正在使用Commons HttpClient对Spring servlet进行http调用。我需要在查询字符串中添加一些参数。因此,我执行以下操作: 但是,当我尝试使用读取servlet中的参数时 它返回null。实际上parameterMap是完全空的。当我在创建HttpGet请求之前将参数手动添加到url时,该参数在servlet中可用。当我使用附加了queryString的UR

  • 要使用API,用户需要进行身份验证,一个SESSIONID cookie被添加到他的浏览器中,该cookie将用于请求sessionToken查询参数。 我怎样才能告诉 Swagger 每个请求都需要一个会话令牌查询参数?我可以添加全局查询参数吗?

  • 我正在使用Spring微服务构建微服务,我有两个相关的问题。 1。我在Api网关(即Zuul服务器)中有Spring安全性,现在Zuul不会转发任何请求,如果我已经从流中读取请求一次以身份验证(从POST请求中获取用户名/通行证) 如何读取请求,然后再次将相同的请求转发给下游服务? 2.Zuul没有转发request.set属性()到下游服务,所以一个解决办法是使用ctx.addZuulask e

  • 问题内容: 我需要向Retrofit 2.0.0-beta2库发出的每个请求添加查询参数。我为Retrofit 1.9 找到了此解决方案,但是如何添加最新的库版本? 我的界面: 客户: 问题答案: 为了完整起见,以下是完整的代码,您需要使用OkHttp-Interceptor向每个Retrofit 2.x请求中添加参数:

  • 问题内容: 我有一个尝试发送的HTTP GET请求。我尝试通过首先创建一个对象并将参数添加到该对象,然后调用我的对象,来将参数添加到此请求中。此方法失败。但是,如果我手动将参数添加到URL中(即append ),它将成功。 我知道我在这里缺少任何东西,任何帮助将不胜感激。 问题答案: 我使用NameValuePair和URLEncodedUtils列表创建所需的url字符串。

  • 我刚开始招摇。目前,我使用的是swagger ui v2.1.4版。我的API由查询参数组成。其中一个参数接受JSON主体。我想在文本区显示这个参数。目前,它显示在输入标记中。此外,我希望在该文本区域下方显示参数内容类型。请帮我怎么做?