我正在编写一个rest客户端应用程序,并且服务器的设置方式(超出我的控制范围)是执行特定的过滤器,查询字符串附加了一个原始json,如下所示:
http://www.someurl.com/api/user?filter= [{ “field1的”: “VALUE1”, “FIELD2”: “VALUE2”, “字段3”: “值3”}]
目前我正在使用Robospice / Spring来处理网络请求和常规查询(即没有json参数),它运行得很好。但是,每当我尝试使用上述url处理GET请求时,我都会收到500服务器错误。我使用This android-async-library尝试了相同的请求,它似乎能够更好地处理参数(200 OK等)。这让我相信问题在于URL的形成/解析方式。
我的问题是Spring可以处理这种格式的URL吗?或者,如果有人知道处理/编码它的最佳方法可以用于弹簧吗?
答案 0 :(得分:0)
是的,你的网址应该被编码,特别是当你在参数中发布json时(因为“,:,},'符号) 用它来创建你的网址
String url = Uri.parse("http://youradres.com")
.buildUpon()
.appendQueryParameter("filter", "[{\"field1\":\"value1\",\"field2\":\"value2\",\"field3\":\"value3\"}]")
.build().toString();
答案 1 :(得分:0)
这可能不是一个好主意。我会传递这样的值:
http://www.someurl.com/api/user?field1=value1&field2=value2&field3=value3
并在您的控制器上管理这些值。我认为这是更多的休息。但是,直接回答你的问题。我认为问题是您需要在发送这些值之前“编码”您的URL。然后在服务器中将其解码回来。
我无法为您提供代码,因为我不使用Java,但这可能会帮助您走上正确的轨道。