0

我对 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 有何不同,后者在我的浏览器上返回相同的内容?也许我在某个地方存在概念上的不足。

4

1 回答 1

0

您的 URI 缺少方案。尝试http://bhive.herokuapp.com/api/questions改用。http很重要。

于 2014-09-15T22:11:30.873 回答