Flutter 中的 Base64 字符串 HTTP Post

Posted

技术标签:

【中文标题】Flutter 中的 Base64 字符串 HTTP Post【英文标题】:Base64 String HTTP Post in Flutter 【发布时间】:2021-10-15 13:43:37 【问题描述】:

我无法使用 Post 函数发送 base64 字符串,我得到的唯一错误是: “状态不佳:无法设置内容类型为‘multipart/form-data’的请求的正文字段。” 当我删除标题时,我收到此错误:“XMLHttpRequest 错误。” 有谁知道我该怎么做? 我还尝试了在线转换器中的 base64 代码,以确保我的字符串正常。

TextButton(
            onPressed: () async 
              final base64 = await documentToBase64(document);
              final urlEncBase64 = Uri.encodeComponent(base64);
              final uri = Uri.parse(myurl);
              await http.post(uri,
                headers: 
                  'content-type': 'multipart/form-data'
                ,
                body: 
                  'b64': '$urlEncBase64',
                ).then((res) 
                  print(res.statusCode);
                ).catchError((err) 
                  print(err);
                
              );
            ,
            child: const Text('Send'),
          ),

【问题讨论】:

你试过用 application/json 代替 'multipart/form-data' ***.com/questions/49125191/… 【参考方案1】:

如果你想以 JSON 格式的字符串发送数据,你应该使用另一种内容类型

'content-type': 'application/json'

但是,如果您想使用 multipart/form-data 类型,您应该遵守本指南。 https://dev.to/carminezacc/advanced-flutter-networking-part-1-uploading-a-file-to-a-rest-api-from-flutter-using-a-multi-part-form-data-post-request-2ekm

【讨论】:

【参考方案2】:

正确的答案是禁用网络安全,因为我试图通过远程连接访问 php。 How to solve flutter web api cors error only with dart code?

并删除错误的标题。

【讨论】:

以上是关于Flutter 中的 Base64 字符串 HTTP Post的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中本地缓存 base64 图像

将base64字符串编码的图像/字节图像作为图像在Flutter中用于Firebase ML Vision中进行处理

如何使用颤振将 Base64 字符串解码为图像文件

Go语言-base64使用

Flutter ListView base64图像与Image.memory一起显示时闪烁

如果 Flutter 中的 Image Picker 未选择,则显示默认图像