Java 参数为空时的弹簧云伪装行为

Java 参数为空时的弹簧云伪装行为,java,spring-boot,spring-cloud,spring-cloud-feign,feign,Java,Spring Boot,Spring Cloud,Spring Cloud Feign,Feign,我在给一个外国客户写信 @RequestMapping( path = "/TrackingServlet?CompanyName=Test&UserName=&BranchCode=", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE ) ResponseEntity<String> getInfo( @Re

我在给一个外国客户写信

@RequestMapping(
      path = "/TrackingServlet?CompanyName=Test&UserName=&BranchCode=",
      method = RequestMethod.GET,
      produces = MediaType.APPLICATION_JSON_VALUE
      )
  ResponseEntity<String> getInfo(
      @RequestParam("DocumentNumbers") String bill);
这甚至没有参数
BranchCode

我正在使用
org.springframework.cloud:springcloudstarteropenfeign:2.1.1.RELEASE
Spring boot版本2.1.4.0发布


在URL中保留空参数是否有其他方法或变通方法?

如果您的URL是
http://localhost:8080/trackingServlet/testing?userName=pratik
使用外部客户端:

@FeignClient(name = "tracking-servlet-service")
public interface TestFeignClient {

        @GetMapping("/trackingServlet/testing")
        public String getQueryParam(@RequestParam("userName") String name);

}
如果您有2个或更多参数,则可以在
@RequestParam

例如 URL
http://localhost:8080/trackingServlet/testing?userName=pratik&companyName=Test

 @FeignClient(name = "tracking-servlet-service")
    public interface TestFeignClient {

            @GetMapping("/trackingServlet/testing")
            public String getQueryParam(@RequestParam("userName") String name, 
                                        @RequestParam("companyName") String companyName);

    }

您试图访问的API是什么,以及您想作为
@RequestParam
发送的参数是什么?我想点击
/TrackingServlet?CompanyName=Test&UserName=&BranchCode=&DocumentNumbers=12345
我不会将它们放在
路径中,但可能会尝试使用请求拦截器,或者按照上面提到的方法将它们全部添加为请求参数。@Spencergib我们尝试添加路径和作为请求参数,在这两种情况下,
=
符号都不存在,即使我们使用了较新的版本。现在我们使用的是spring请求模板,它可以很好地处理url中的空参数,
=
符号并没有被消除。听起来对我来说是个不错的计划
 @FeignClient(name = "tracking-servlet-service")
    public interface TestFeignClient {

            @GetMapping("/trackingServlet/testing")
            public String getQueryParam(@RequestParam("userName") String name, 
                                        @RequestParam("companyName") String companyName);

    }