【发布时间】:2014-11-09 13:04:25
【问题描述】:
我对 Django 和 RESTful API 比较陌生。
我正在编写一个 Android 应用程序,它对我的 API 执行 GET 请求,我使用 Django 和 Postgresql 设置了该请求。我正在使用 Ion 库异步执行此请求。我不认为 Ion 是个问题,因为当我尝试从 http://ip.jsontest.com/ 之类的示例 URI 获取时,此代码有效。我的代码如下所示。
public class ConnectToBackend {
//Contains public static functions
public static void getAllQuestions(final Context mcontext){
Ion.with(mcontext)
.load("bhive.herokuapp.com/api/questions")
.asJsonObject()
.setCallback(new FutureCallback<JsonObject>() {
@Override
public void onCompleted(Exception e, JsonObject result) {
// this is called back onto the ui thread, no Activity.runOnUiThread or Handler.post necessary.
Log.d("ConnectToBackend", "getAllQuestions called");
if (e != null) {
Toast.makeText(mcontext, "Error loading questions " + e.toString(), Toast.LENGTH_LONG).show();
Log.d("ConnectToBackend", e.toString());
return;
}
else{
Log.d("connectToBackend", "Received JSON array for getAllQuestions");
Log.d("connectToBackend", "jsonObject is " + result.toString());
return;
}
}
});
return;
}}
如您所见,URI 是 bhive.herokuapp.com/api/questions。当我在浏览器中尝试此操作时,它会返回我期望的 JSON 字符串。但是,当我尝试使用此代码时,我希望得到相同的 JSON 字符串,但我得到了异常:
java.lang.Exception: Invalid URI
为什么我的浏览器返回了预期的 JSON,但是当我像这样尝试这个 URI 时,它不起作用?我的 URI 与 http://ip.jsontest.com/ 之类的示例 URI 有何不同,后者在我的浏览器上返回相同的内容?也许我在某个地方存在概念上的不足。
【问题讨论】:
标签: android json django httpclient ion