先抛截图如下:
问题图
首先出现上边问题是FormData转换数据时候出错了。
网友和dio官方github上给的解决办法是:
MultipartFile类添加 contentType: MediaType("image", "png"),
MediaType是http_parser里面的一个类型,可以直接搜索引用,
如下:
MediaType作为
contentType参数
到这里基本上解决了百分之99的问题了,我感觉我就是那百分之一,我的问题如下:
我的问题代码
看出区别了么?两个相同的名称,就是构造不一样,我想用上边的正确的方法,但是MultipartFile()初始化方法contentType需要的是一个字符串, MediaType无法使用。我一开始以为版本不一样导致MultipartFile和FormData的初始化方有区别,谁知道是GetX里面的两个同名类,如下:
GetX同名类
因为图片处理和上传是在GetController的子类中进行,编辑器自然直接就使用GetX里面的两个同名类了,结果在上传时候,一直报错。
跟后台一起排查修改headers上传数据类型等各种尝试还是不成功,最后发现是GetX同名的类FormData和MultipartFile导致的,上传图片需要引用的是DIO的FormData和MultipartFile。注意构造函数也不一样。
解决方案:
在当前类中给GetX添加别名,或者给DIO添加别名,二选一解决使用相同类名的类导致的错误问题。
我选择给GetX添加别名。
GetX添加别名
到此问题解决,一定要注意相同的情况,刚刚全局搜索了一下,同名的类还挺多的, 使用的时候有问题先检查一下用的是哪个库的类导致的。