我的 flutter 应用无法连接到 FastApi
My flutter app fails to connect to FastApi
我试了好久都没弄明白,希望你能帮帮我。
我有我的 SQL 数据库 运行 以及 FastApi。
FastAPI 运行 于:http://127.0.0.1:8000
<- as seen here
并且在 OpenApi 上测试时完美运行 as shown here.
我的 flutter 应用发出以下获取请求:
Future MakeGetProductRequest() async {
Uri url = Uri.parse('http://localhost:8000/items?page=1&number=5');
var response = await http.get(url);
return response;
}
当 运行 通过 USB 调试物理设备上的应用程序时,出现以下错误:
Unhandled Exception: SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 34214
完整控制台错误here
注意:我运行这是在物理设备上而不是模拟器上!
它不适用于环回地址。您的地址 127.0.0.1 在 flutter 设备上无法访问。
要连接它们,您必须像这样在 0.0.0.0 上 运行 FastAPI:
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
以上代码将使您的本地 IP 通过 LAN 可用。只需确保您的 phone 和 PC 连接到同一个 WIFI 网络。
要获取您 PC 的 IP 地址,运行 在命令提示符中输入:
ipconfig
你会得到这样的输出:
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 192.168.29.82
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.29.1
你可以看到我的 IPv4 Address
是 192.168.29.82
所以,要从我的 flutter 代码访问 FastAPI,我必须连接到 http://192.168.29.82:8000
我试了好久都没弄明白,希望你能帮帮我。 我有我的 SQL 数据库 运行 以及 FastApi。 FastAPI 运行 于:http://127.0.0.1:8000 <- as seen here
并且在 OpenApi 上测试时完美运行 as shown here.
我的 flutter 应用发出以下获取请求:
Future MakeGetProductRequest() async {
Uri url = Uri.parse('http://localhost:8000/items?page=1&number=5');
var response = await http.get(url);
return response;
}
当 运行 通过 USB 调试物理设备上的应用程序时,出现以下错误:
Unhandled Exception: SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 34214
完整控制台错误here
注意:我运行这是在物理设备上而不是模拟器上!
它不适用于环回地址。您的地址 127.0.0.1 在 flutter 设备上无法访问。
要连接它们,您必须像这样在 0.0.0.0 上 运行 FastAPI:
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
以上代码将使您的本地 IP 通过 LAN 可用。只需确保您的 phone 和 PC 连接到同一个 WIFI 网络。
要获取您 PC 的 IP 地址,运行 在命令提示符中输入:
ipconfig
你会得到这样的输出:
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 192.168.29.82
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.29.1
你可以看到我的 IPv4 Address
是 192.168.29.82
所以,要从我的 flutter 代码访问 FastAPI,我必须连接到 http://192.168.29.82:8000