我对 Django 和 RESTful API 比较陌生。
我正在编写一个对我的 API 执行 GET 请求的 Android 应用程序,我使用 Django 和 Postgresql 设置了该请求。我正在使用 Ion 库异步执行此请求。我认为 Ion 不是问题,因为当我尝试从http://ip.jsontest.com/等示例 URI 获取 GET 时,此代码有效。我的代码看起来像这样。
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 有何不同,后者在我的浏览器上返回相同的内容?也许我在某个地方存在概念上的不足。