【问题标题】:Cannot connect the local host in android emulator无法在android模拟器中连接本地主机
【发布时间】:2019-01-27 20:45:47
【问题描述】:

我看到之前有人问过这个问题,但到目前为止,这些解决方案对我不起作用。希望有人可以阐明我做错了什么:

我的笔记本电脑上有 djangorestframework+postgresql 作为后端。 android 项目也在同一台笔记本电脑上。

在浏览器中,当服务器运行时,我可以通过例如笔记本电脑上的以下 URL 访问 json 字符串:

http://127.0.0.1:8000/posts/

现在在我的 android 模拟器上,我正在使用以下内容(如许多分辨率中所建议的那样)来获取 json 字符串:

http://10.0.2.2:8000/posts/

但它响应为错误请求。

我想确保 Android 项目中的设置正确,所以我测试并看到它可以毫无问题地从互联网 URL 读取 json api。

我也在使用 okhttp3 从 url 获取 json。

谁能告诉我我做错了什么。

谢谢,

这是我的 Java 代码:

url2 = "http://10.0.2.2:8000/posts/";

client = new OkHttpClient();
request = new Request.Builder()
        .url(url2)
        .build();


client.newCall(request).enqueue(new Callback() {

    @Override
    public void onFailure(Call call, IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        if (response.isSuccessful()) {
            final String jsonResponse = response.body().string();
            MainActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    m_textView.setText(jsonResponse);
                }
            });
        } else {
            Log.d("AMIRSERVER", jsonResponse);
        }
    }

});

【问题讨论】:

    标签: java postgresql android-studio django-rest-framework android-emulator


    【解决方案1】:

    我遇到了同样的问题,但我的后端在 Win10 上的 C# 中的 IIS 上。我刚刚修改了项目“主机”文件以接受 192.168.0.1 和 10.0.2.2 IP。在它只是接受对“localhost”的调用之前,因为它是“hosts”文件中的唯一条目。

    你的服务器可能有类似的东西......

    【讨论】:

      【解决方案2】:

      感谢埃里希, 我把

      ALLOWED_HOSTS = ["10.0.2.2"]
      

      在我的 Django 设置中,它起作用了!!!

      【讨论】:

        猜你喜欢
        • 2021-05-07
        • 2013-07-14
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        • 1970-01-01
        • 2021-11-03
        • 1970-01-01
        • 2019-12-23
        相关资源
        最近更新 更多