我正在进行以下API调用:
http://rollout.gr/api/?query={%22search%22:%22places%22,%22page%22:1}
此API调用在我的浏览器中正确执行。但是当我在我的Android应用程序中使用DefaultHttpClient
执行此URL时,我得到一个空响应。
我认为问题是HTTP网址中的JSON数据。因此,我想问一下在Android应用程序中处理这种URL的正确方法是什么?
提前多多感谢!
答案 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。
这个项目可能会解决您的问题:
答案 2 :(得分:0)
不知道您的特定HTTP初始化代码,我假设您没有提供明确的JSON接受标头。很多REST端点都需要这个。
httpget.setHeader("Accept", "application/json");