为什么我的QueryParam返回null

时间:2014-12-02 07:38:28

标签: java jax-rs

免责声明:我不是J2EE开发人员。但是这段代码可以在其他地方使用,但是这个api很疯狂。

代码

@GET
    @Path("GetCloseby")
    @Consumes({ MediaType.TEXT_PLAIN })
    @Produces({ MediaType.APPLICATION_JSON })
    public CServiceCenters getList(@QueryParam("latitude") Double latitude,
            @QueryParam("longitude") Double longitude) {
            log.info("GetCloseby searching for lat "
                    + latitude + " lng " + longitude);
  

GetCloseby搜索lat 17.63 lng null

来自客户

  

curl http://:8080 / MYWAR / MYAPI / GetCloseby?latitude = 17.63& longitude = 73.9

2 个答案:

答案 0 :(得分:2)

免责声明:我不是一个大的cURL用户,所以我不知道所有的细微差别,以及为什么这样做。这可能是一个shell问题。

要使其正常工作,我必须在网址

周围添加引号"
  

curl "http://:8080/MYWAR/MYAPI/GetCloseby?latitude=17.63&longitude=73.9"

注意:我也试图逃避&(没有引号),但我会在服务器上获得URISyntaxExeption。

答案 1 :(得分:1)

&字符需要进行转义,它在shell中具有特殊含义。你可以这样做:"abc&def"或像这样:abc\&def。如果您尝试后者:此查询中可能还有其他特殊字符,因此要么使用第一个变体,要么必须将shell识别的所有字符转义为特殊字符。

试一试:

echo abc&def

这基本上意味着: