在Android中使用Json参数的HTTP GET url

时间:2012-11-10 12:51:14

标签: android json http

我正在进行以下API调用:

http://rollout.gr/api/?query={%22search%22:%22places%22,%22page%22:1}

此API调用在我的浏览器中正确执行。但是当我在我的Android应用程序中使用DefaultHttpClient执行此URL时,我得到一个空响应。

我认为问题是HTTP网址中的JSON数据。因此,我想问一下在Android应用程序中处理这种URL的正确方法是什么?

提前多多感谢!

3 个答案:

答案 0 :(得分:1)

荣誉不是有效的网址字符。浏览器用户友好,可以自动对它们进行URL编码,但DefaultHttpClient不是。从代码中使用的正确行是:

http://rollout.gr/api/?query=http://rollout.gr/api/?query=%7b%22search%22:%22places%22,%22page%22:1%7d

请注意荣誉的编码(%7b%7d)。

答案 1 :(得分:0)

您的问题可能是严格模式。 我建议在线程或asynctasks中执行http请求。 strictmode不允许app在uithread中执行http reauest。也许你的控制台显示一个警告,因此你从http响应中得到null。

这个项目可能会解决您的问题:

http://loopj.com/android-async-http/

答案 2 :(得分:0)

不知道您的特定HTTP初始化代码,我假设您没有提供明确的JSON接受标头。很多REST端点都需要这个。

httpget.setHeader("Accept", "application/json");