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

Flutter加载Odoo HTTP图片失败,HTTPS图片正常加载求助

Flutter加载Odoo HTTP图片失败的解决办法

几个可行的排查方向:

1. 先检查URL是否拼对了

从报错信息里的URL能看到,field参数的值被截断成imag了,但你代码里写的是image_1920,这明显不对。先把完整URL打出来对比:

String fullImageUrl = "$theUrl/web/image?model=product.template&field=image_1920&id=${provider.allProducts[index].id}";
print(fullImageUrl);

确认控制台输出的URL和浏览器里能正常打开的URL完全一致,比如theUrl变量有没有多余字符、拼接时有没有漏掉参数部分。

2. 给Flutter开启HTTP访问权限

Flutter默认限制HTTP资源访问,只允许HTTPS,这大概率是核心问题:

  • Android端:打开android/app/src/main/AndroidManifest.xml,在<application>标签内添加android:usesCleartextTraffic="true":
    <application
        ...
        android:usesCleartextTraffic="true">
    
  • iOS端:打开ios/Runner/Info.plist,添加以下配置:
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    

3. 确认Odoo接口的认证信息

浏览器能打开图片,可能是因为保存了Odoo的登录会话,但Flutter请求时没携带认证信息:

  • 用浏览器开发者工具查看打开图片时的请求头,找到Cookie中的session_id,然后在NetworkImage中添加请求头:
    NetworkImage(
      fullImageUrl,
      headers: {
        'Cookie': 'session_id=你的实际会话ID',
      },
    )
    

4. 清除Flutter图片缓存

之前的错误缓存可能导致一直加载失败,试试清除缓存:

imageCache.clear();

或者直接重启Flutter应用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:42:35