如何测试从 Flutter 应用程序到 localhost 服务的 api 调用?
Posted
技术标签:
【中文标题】如何测试从 Flutter 应用程序到 localhost 服务的 api 调用?【英文标题】:How to test api calls from flutter app to localhost service? 【发布时间】:2020-07-11 19:23:44 【问题描述】:我正在尝试了解如何测试从我的 Flutter 应用程序(在模拟器中运行)到我的后端服务的 http 调用,该后端服务在我的电脑上 https://localhost:8080
的调试中运行。
我知道直接从颤振与https://localhost:8080
交谈是行不通的,因为它意味着“模拟器的本地主机”,所以我正在和我的电脑本地 ip 交谈,但我得到了CERTIFICATE_VERIFY_FAILED
,因为当然https://192.168.1.123:8080 没有'没有签名证书。
处理这种情况的正确方法是什么?
【问题讨论】:
【参考方案1】:您需要使用主机的本地主机,而不是模拟器的本地主机。为此,您需要使用 10.0.2.2,然后使用您的端口号,因此在您的情况下,对 https://10.0.2.2:8080
进行 http 调用。在内部,android 将对 10.0.2.2 的调用重新路由到 127.0.0.1,这是您的开发机器上的 localhost ip。
How do you connect localhost in the Android emulator?
更多信息:https://developer.android.com/studio/run/emulator-networking.html
【讨论】:
谢谢。我应该回退到http还是我可以坚持使用https? 我不确定,我个人使用http。我不认为 https 开箱即用,我在 Medium 上找到了一篇关于为开发目的设置 SSL 的文章。 medium.com/@noumaan/ssl-app-dev-a2923d5113c6 这是否也适用于 ios 模拟器/设备?谢谢。 如果您的意思是“这个”是 10.0.2.2 IP 地址:不,这仅适用于 Android。对于 iOS,您可以使用普通的 127.0.0.1以上是关于如何测试从 Flutter 应用程序到 localhost 服务的 api 调用?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 dio 从本地主机:3000 切换到准备在 Flutter 中生产的东西?
Flutter App:如何从 Visual Studio 代码构建 testflight
如何在 Dart/Flutter 上的测试中导入测试实用程序文件