在我的 Android 项目中,我将 Robospice 与 spring-android 一起使用。这适用于所有 REST 通信。但是对于下面的请求查询参数“=”被转换为“&”。因此,请求失败。
请求参数: tags=["keywords:default=hello"]
通过检查日志,请求被转换如下,以便库调用。
http://XXX/rest/media/search?token=123&tags=%5B%22keywords:default&hello%22%5D
这里“=”符号在“keywords:default=hello”中转换为“&”
请求类
这里 tags = String.format("[\"keywords:default=%s\"]", mTag);
@Override
public MVMediaSearch loadDataFromNetwork() throws Exception
{
String search="";
if(!tags.equals(Constants.EMPTY_DATA))
search="&tags="+tags;
return getRestTemplate().getForObject( Constants.BASE_URL+"/media/search?token="+token+search, MVMediaSearch.class );
}
如果我在浏览器中触发 URL,则会出错。如果我在浏览器中将“&”符号更改为相应的 url 编码值,它就可以正常工作。