Flutter http 在 releasebuild 中不起作用

Posted

技术标签:

【中文标题】Flutter http 在 releasebuild 中不起作用【英文标题】:Flutter http doesn't work in releasebuild 【发布时间】:2021-09-10 08:12:52 【问题描述】:

在调试时一切正常。但是,如果我创建一个 releasebuild,Flutter http-libary 就不起作用。 我的 androidmanifest 中有 Internet 权限。 目前我使用 Flutter 2.5.0 和 http 0.13.3。

我已经创建了一个新项目,但它在那里也不起作用。

【问题讨论】:

您是否为调试和主 android 清单添加了权限? 是的。我在两者中都添加了权限 您访问的是非 https 网址吗? 控制台是否抛出了特定错误? 不起作用是什么意思?!它是否显示错误? 【参考方案1】:
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:label="Appname"
        android:icon="@mipmap/ic_launcher">

    ................
 
     </application>

Then inside res folder, create xml folder and add network_security_config.xml   
Inside network_security_config.xml file, you may enter specific http url and you may use local api also.
  
  <?xml version="1.0" encoding="utf-8"?>
   <network-security-config>
      <base-config cleartextTrafficPermitted="true">
          <trust-anchors>
              <certificates src="system" />
          </trust-anchors>
      </base-config>
      <domain-config cleartextTrafficPermitted="true">
          <domain includeSubdomains="true">example.uz</domain>
          <domain includeSubdomains="true">example2.uz</domain>
          <domain includeSubdomains="true">10.112.52.30</domain>
          <domain includeSubdomains="true">192.168.12.81</domain>
     </domain-config>
    </network-security-config>

【讨论】:

以上是关于Flutter http 在 releasebuild 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - http.get 在 macos 构建目标上失败:连接失败

如何在 Flutter 中解码 Gzip Http 响应?

Flutter:在 http.get 请求之后构建 ListView

Http POST 在 Postman 中有效,但在 Flutter 中无效

为啥我在flutter中更新http包后不能在http.post方法中放一个字符串

Flutter:如何为 StreamBuilder 制作 http 流