gpt4 book ai didi

java - 无法从 Android 应用程序连接到本地主机 API

转载 作者:行者123 更新时间:2023-11-30 10:12:26 27 4
gpt4 key购买 nike

我是 Django 的新手。我创建了一个名为 http://127.0.0.1:8000/api/update/1/ 的 API,它可以在浏览器和 Postman 应用程序中完美运行。

但是,当我尝试从 Android 应用程序访问 API 时,它返回 NULL。

当API如下时,android代码工作。

http://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey=8190df9eb51445228e397e4185311a66

但是,当 API 为以下时,它不起作用,即使以下 API 在同一台 PC 上运行的浏览器和 Postman 应用程序中运行良好。

http://127.0.0.1:8000/api/update/1/

我附上了进行 API 调用的代码。

protected String doInBackground(String... args) {
String xml = "";
String api = "http://127.0.0.1:8000/api/update/1/"; // returns NULL works in Postman app and in the browser
// String api = "http://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey=8190df9eb51445228e397e4185311a66"; // works in all places
String urlParameters = "";
xml = Function.excuteGet(api, urlParameters);
return xml;
}

谁能帮我解决这个问题?提前致谢。

最佳答案

如果您从真实的 Android 设备测试您的应用程序,那么您需要在尝试通过 API 连接到 Django 服务器时输入您 PC 的 IP 地址。是的,您也需要在同一个网络中。因此,您需要检查以下事项。

  1. 确保 PC(运行服务器的地方)和 Android 设备(测试应用程序的地方)在同一个网络中(可能连接到同一个 Wifi 网络)。
  2. 确保您连接到运行服务器的 PC 的 IP 地址。例如,现在您的 PC 的 IP 地址是 192.168.0.100。然后,您需要连接到此 IP 地址并调用您的 API,如下所示。

    http://192.168.0.100:8000/api/update/1/
  3. 确保您接受对 PC 端口 8000 的请求。检查您的防火墙配置是否阻止对 8000 端口的任何传入请求。如果发现阻塞,请使用以下命令允许对 8000 端口的传入请求。

    sudo ufw allow 8000/tcp

如果没有任何帮助,请检查您的 Android 代码以检查 API 调用是否正常。我强烈建议使用 Volley 进行 API 调用 suggested in developers文档。

最后但并非最不重要的一点是,请检查您在 AndroidManifest.xml 文件中是否拥有必要的权限。您需要添加以下权限以授予您的应用程序使用互联网。

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

关于java - 无法从 Android 应用程序连接到本地主机 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51889837/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com