You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter调用API连接失败:Swagger正常但移动端报网络不可达错误

解决Flutter移动端调用API报"Network is unreachable (errno=101)"的问题

排查与解决步骤

1. 确认设备与API服务器的网络连通性

你用的是局域网IP 192.168.18.2,先检查移动端设备(手机/模拟器)和API服务器是否在同一WiFi网段:

  • 真机:直接看手机连接的WiFi是否和服务器一致;
  • Android模拟器:部分模拟器默认网络可能和主机局域网隔离,尝试切换模拟器的网络模式为“桥接”,或者用主机的局域网IP直接访问;
  • iOS模拟器:直接使用局域网IP即可,无需特殊配置。

2. 配置Android网络权限与明文HTTP允许

  • 先在android/app/src/main/AndroidManifest.xml中添加基础网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  • Android 9及以上默认禁止明文HTTP请求,需配置网络安全策略:
    在android/app/src/main/res/xml下新建network_security_config.xml,内容如下:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true" />
    </network-security-config>
    
    然后在AndroidManifest.xml的<application>标签中引用该配置:
    <application
        ...
        android:networkSecurityConfig="@xml/network_security_config">
    

3. 配置iOS的HTTP请求权限

iOS 10及以上默认限制明文HTTP请求,需在ios/Runner/Info.plist中添加配置:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

如果想更严格,也可以只允许指定IP的明文请求:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>192.168.18.2</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

4. 检查API服务器的防火墙与端口

确认服务器的防火墙没有拦截移动端设备的IP访问1111端口,也可以在移动端浏览器直接访问http://192.168.18.2:1111/predict,验证网络是否能连通。

5. 代码辅助排查

可以在请求前添加日志,确认网络状态和请求地址:

import 'package:connectivity_plus/connectivity_plus.dart';

// 在try块前添加
var connectivityResult = await (Connectivity().checkConnectivity());
print('当前网络状态: $connectivityResult');
print('请求地址: $uri');

内容的提问来源于stack exchange,提问作者amad durrani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:01:44