我试图将图像从Flutter android应用程序上传到服务器(在flask-python上运行)。我已经使用了swagger 2.0来生成flask服务器和dart客户端api代码。每当我尝试调用图片上传API时,服务器端都会出现错误“关键错误:文件”。
设置:
客户端:Android上的flutter客户端
服务器:Flask Python
两者都是使用Swagger 2.0
我尝试从SOAP UI调用api,它可以正常运行,并且我的图像被上传到服务器。但是,当我尝试通过flutter api从android应用程序调用相同的图像上传api时,这在服务器上给了我错误。
SOAP UI调用参数:
方法:POST
端点:http://localhost:5000
资源:/ images
发表QueryString = true
参数:
inFile文件:[我在附件部分上传的文件名]
Swagger configuration:
post:
description: Creates a new Image
operationId: createNewImage
consumes:
- multipart/form-data
parameters:
- in: formData
name: inFile
type: file
required: true
description: Image file to upload.
- in: formData
name: imageDescription
type: string
required: false
description: Description of image file
responses:
'200':
description: 200 response
schema:
$ref: '#/definitions/ImageRespModel'
Flutter Api calling code (Not working):
var api = new ServerApi.ImagesApi();
File _image = <image object clicked from camera>
String _filename = path.basename(_image.path);
MultipartFile _imageFile = MultipartFile.fromBytes(
'inFile', _image.readAsBytesSync(),
filename: _filename);
api.createNewImage(_imageFile);
预期结果:android api调用应该能够以与我从SOAP UI能够执行的相同方式上载代码。我想我在android api调用设置中缺少了一些内容。
python服务器上的错误:
type_func = TYPE_MAP [_type]#将值转换为正确的类型
KeyError:“文件”