Android注释:查询参数被附加到url?

时间:2014-02-04 05:20:29

标签: android android-annotations

@Get("/ServiceTest?version=1&dateRange={dateRange}")
ResponseModel getDateRangeTest(String dateRange);

在RestClient接口中,这将进行以下获取

http://localhost:8080/ServiceTest/2014-01-29%25202014-01-29?version=1" resulted in 400 (Bad Request); invoking error handler

我在发送查询参数时做错了什么。

我想这样说:

/ServiceTest?version=1&dataRange=2014-01-29%25202014-01-29

在这种情况下,我无法使用Android注释生成@Get

回答:我的来电不正确,主要问题是uri编码,正确答案是

/ServiceTest?version=1&dataRange=2014-01-29%202014-01-29

1 个答案:

答案 0 :(得分:1)

你可能做错了。

您的服务器获得/ServiceTest
但是您访问地址为/ServiceTest/2014-01-29%25202014-01-29

的服务器

小心您的服务器收到 / ServiceTest?version = 1& dateRange = {dateRange} 和{dataRange}是您打算作为变量提供的。

您的地址应为/ServiceTest?version=1&dataRange=2014-01-29%25202014-01-29

==编辑==

我不熟悉Android Get annotation,但试试这个。

@Get("/ServiceTest?version=1&dateStart={dateStart}&dateEnd={dateEnd}")
ResponseModel getDateRangeTest(String dateStart, String dateEnd);

并使用/ServiceTest?version=1&dataStart=2014-01-29&dateEnd=2014-01-29

进行访问

请注意,我更改参数更具体。这将是一个更好的方法。