2

我正在编写一个休息客户端应用程序,服务器的设置方式(超出我的控制)是执行特定的过滤器,查询字符串附加了一个原始 json,如下所示:

http://www.someurl.com/api/user?filter=[{"field1":"value1","field2":"value2","field3":"value3"}]

目前我正在使用 Robospice/Spring 来处理网络请求,对于常规查询(即没有 json 参数),它工作得很好。但是,每当我尝试使用上述 url 处理 GET 请求时,我都会不断收到 500 服务器错误。我使用This android-async-library尝试了相同的请求,它似乎能够更好地处理参数(200 OK 等)。这使我相信问题出在 URL 的形成/解析方式上。

我的问题是 Spring 可以处理这种格式的 URL 吗?或者如果有人知道处理/编码它的最佳方法,这将可用于春季?

4

2 回答 2

0

这可能不是一个好主意。我会像这样传递这些值:

http://www.someurl.com/api/user?field1=value1&field2=value2&field3=value3

并在您的控制器上管理这些值。我认为它更适合休息。但是,直接回答您的问题。我认为问题是您需要在发送这些值之前对您的 URL 进行“编码”。然后将其解码回您的服务器。

我不能给你代码,因为我不使用 Java,但这可能会帮助你走上正轨。

于 2014-01-03T18:40:48.907 回答
0

是的,你的 url 可能应该被编码,特别是当你在参数中发布 json 时(因为 ", :, }, ' 符号)使用它来创建你的 url

String url = Uri.parse("http://youradres.com")
                .buildUpon()
                .appendQueryParameter("filter", "[{\"field1\":\"value1\",\"field2\":\"value2\",\"field3\":\"value3\"}]")
                .build().toString();
于 2013-12-06T17:43:15.697 回答