首页 > 解决方案 > 如何在获取请求上发送多个参数

问题描述

首先,感谢您阅读我的问题并尝试帮助我并为我的英语道歉。

我是 Spring 新手,我收到以下消息:

对 URI 的 servlet 请求

http://localhost:8080/backend/v1/streetviewer/search-street?url=backend2?busqueda=name%20street&idioma=es-es%26cantidad=10

在请求正文中包含表单参数,但请求正文已被 servlet 或访问请求参数的 servlet 过滤器使用。只有使用的资源方法@FormParam才能按预期工作。通过其他方式消耗请求正文的资源方法将无法按预期工作。

我的后端使用一个参数(url)向 backend2 发送请求,但该 url 包含 3 个参数。我明白这就是为什么这么说的原因。

但我正在阅读@FormParam用于 POST 请求的内容,并且我正在使用@QueryParam.

@GET
@Path(ApiPath.PATH_BACKEND2)
public String getDataFromProdServer(@QueryParam(ApiParam.PARAM_URL) final String externalUrl ) {
    return mapService.ServerRequest(externalUrl);
}

怎么解决??

标签: javaspringspring-boot

解决方案


要说你实际上是在使用JAX-RS实现,backend2我认为它是一个单独的服务,所以我建议你使用 Spring 实现来使用 API。@RequestMapping/@GetMapping and so..

提出问题(使用 Spring 实现)

@GetMapping(ApiPath.PATH_BACKEND2)
public String getDataFromProdServer(@RequestParam(ApiParam.PARAM_UR) final String externalUrl) {
  return mapService.serverRequest(externalUrl);
}

推荐阅读