使用python将图像上载到API url

使用python将图像上载到API url,python,post,python-requests,Python,Post,Python Requests,如上面的代码所示,我打开图像并将其转换为dataURI,然后通过POST请求将其发送到端点 问题是我遇到了一个错误: session = requests.Session() url = "...api/auth/login" payload = { "userName": "user@mail.com",

如上面的代码所示,我打开图像并将其转换为dataURI,然后通过POST请求将其发送到端点

问题是我遇到了一个错误:

            session = requests.Session()
            url = "...api/auth/login"
            payload = {
                "userName": "user@mail.com",
                "password": "password"
            }
            headers = {'content-type': 'application/json'}
            response = session.post(url, data=json.dumps(payload), headers=headers)
           
            png_uri = DataURI.from_file(image_path)

            files = {
                'file': (
                    os.path.basename(image_path),
                    png_uri,
                    'image/png'
                ),
                'filename': os.path.basename(image_path),
                'upload': '',
            }
            response = session.post(upload_url, files=files)
            print(response.text)

你知道我这里遗漏了什么吗?

所以我不知道你发布的api是如何处理文件的

但是我在webhook.site上创建了一个非常简单的帖子,这样您就可以看到正在发送的json数据

我认为你的帖子出了问题的是这一部分。接收数据的Api可能无法解析“文件”数据

{"error code":400,"message":"Invalid file type"}
因此,或许可以这样布置:

files = {
    'file': (
        os.path.basename(image_path),
        png_uri,
        'image/png'
    ),
    'filename': os.path.basename(image_path),
    'upload': '',
}
以下是json与api的区别: 你的职位:

我的帖子:

显然,这要容易得多

API的文档记录得很糟糕

files = {
    'file': png_uri,
    'type': 'image/png',
    'filename': os.path.basename(image_path),
    'upload': ''
}

你有API文档吗(斯威格\类似的东西)?如果是,请分享iTunes,API是私有的,不包含任何“主体”示例
files = {
                'upload': (
                    os.path.basename(image_path),
                    image_fp,
                    'image/png',
                )
            }