我是 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;
}
谁能帮我这个?提前致谢。
原文由 Mazharul Islam 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您从真实的 Android 设备测试您的应用程序,那么您需要在尝试通过 API 连接到 Django 服务器时输入您的 PC 的 IP 地址。是的,您也需要在同一个网络中。因此,您需要检查以下事项。
192.168.0.100
。然后,您需要连接到此 IP 地址并调用您的 API,如下所示。8000
的请求。检查您的防火墙配置是否阻止对8000
端口的任何传入请求。如果发现阻塞,请使用以下命令允许对8000
端口的传入请求。如果没有任何帮助,请检查您的 Android 代码以检查 API 调用是否正常。我强烈建议使用 Volley 进行 开发人员文档中建议 的 API 调用。
最后但并非最不重要的一点是,请检查您的
AndroidManifest.xml
文件是否具有必要的权限。您需要添加以下权限以授予您的应用程序使用互联网。