无法在android模拟器中连接本地主机

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


我有 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);

        }

    }


});


qq_遁去的一_1
浏览 180回答 2
2回答

泛舟湖上清波郎朗

我有同样的问题,但我的后端在 Win10 上的 C# 中的 IIS 上。我刚刚修改了项目“主机”文件以接受 192.168.0.1 和 10.0.2.2 IP。在它只是接受对“localhost”的调用之前,因为它是“hosts”文件中的唯一条目。您的服务器可能有类似的东西......

子衿沉夜

感谢埃里希,我把ALLOWED_HOSTS = ["10.0.2.2"]在我的 Django 设置中,它起作用了!!!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java