首页 > 解决方案 > spring boot、jax-rs、jersey中无法识别多个URL查询参数

问题描述

在将 curl 命令中的多个查询参数传递到我的 Spring Boot 服务器时遇到问题,该服务器使用 jersey 和 jax-rs 来提供一些端点。

这是我的 curl 命令:

curl localhost:8080/players?pageStartIndex=3&pageSize=4

我使用过滤器打印出进来的内容

@Provider
public class APIRequestFilter implements ContainerRequestFilter {

    @Override
    public void filter(ContainerRequestContext requestContext)
             throws IOException {
        System.out.println(">>filter(), uriPath=" + requestContext.getUriInfo().getRequestUri());
        System.out.println(">>filter(), " + requestContext.getUriInfo().getQueryParameters());
        ...

这是打印出来的...

>>filter(), uriPath=http://localhost:8080/players?pageStartIndex=3
>>filter(), {pageStartIndex=[3]}

由于某种原因,只打印出第一个查询参数。

有任何想法吗?

标签: spring-bootcurljerseyjax-rs

解决方案


您需要将命令行中的 url 用引号括起来。&在命令行上有特殊的含义。


推荐阅读