如何将图片从swagger dart客户端(android)上传到swagger烧瓶服务器?

时间:2019-01-31 03:53:17

标签: android flask dart flutter swagger-2.0

我试图将图像从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:“文件”

0 个答案:

没有答案