File upload ValueError:数据不能是字符串/HTTP 415

File upload ValueError:数据不能是字符串/HTTP 415,file-upload,https,python-requests,File Upload,Https,Python Requests,我正在尝试使用它的私有API上传图像。它总是让我犯错误。我不完全确定我是否需要传递唯一的签名密钥(我得到的实际post请求没有传递签名密钥,但是我使用的请求会话应该表明我是经过身份验证的成员) 如图所示,它不会传入任何签名体。所以我假设我不需要传递签名密钥?无论如何。当我放置签名密钥和文件参数时,它向我抛出的数据不能是字符串错误 def upload_images(self): data = {'_csrftoken':self.LastResponse.cookies['csr

我正在尝试使用它的私有API上传图像。它总是让我犯错误。我不完全确定我是否需要传递唯一的签名密钥(我得到的实际post请求没有传递签名密钥,但是我使用的请求会话应该表明我是经过身份验证的成员) 如图所示,它不会传入任何签名体。所以我假设我不需要传递签名密钥?无论如何。当我放置签名密钥和文件参数时,它向我抛出的数据不能是字符串错误

def upload_images(self):
        data = {'_csrftoken':self.LastResponse.cookies['csrftoken'],
                'guid':self.uuid,
                'device_id':self.device_id
                }
        files = {
        'photo':open('small.jpg','rb')
        }
        make_post_requests = self.s.post('https://i.instagram.com/api/v1/upload/photo/', self.generateSignature(json.dumps(data)), files=files)
        print make_post_requests.text
这段代码给了我一个错误。如果我去掉self.generateSignature(json.dumps(data))并将files=files。 它向我抛出HTTP 415错误。这是密码

def upload_images(self):
        data = {'_csrftoken':self.LastResponse.cookies['csrftoken'],
                'guid':self.uuid,
                'device_id':self.device_id
                }
        files = {
        'photo':open('small.jpg','rb')
        }
        make_post_requests = self.s.post('https://i.instagram.com/api/v1/upload/photo/', files=files, data=data)
        print make_post_requests.text

<html>
<head><title>415 Unsupported Media Type</title></head>
<body bgcolor="white">
<center><h1>415 Unsupported Media Type</h1></center>
<hr><center>nginx</center>
</body>
</html>
def上传_图像(自):
数据={''u csrftoken':self.LastResponse.cookies['csrftoken'],
“guid”:self.uuid,
“设备id”:self.device\u id
}
文件={
'photo':打开('small.jpg','rb')
}
发出发布请求=self.s.post('https://i.instagram.com/api/v1/upload/photo/,文件=文件,数据=数据)
打印make_post_请求。文本
415不支持的媒体类型
415不支持的媒体类型

nginx
问题- 1.我需要传递唯一的签名密钥吗?post请求清楚地表明,除了csrftoken和其他属性之外,不需要传递它。 2.如果我不需要传递签名密钥,我做错了什么,它会抛出HTTP 415错误。我遵守instagram上传图片的规则。 3.如果我确实需要传递签名密钥,如何在一次请求时同时传递签名密钥和文件? 4.这可能与传递内容头有关吗?如果是,我如何生成一个?根据请求,它以一个唯一的边界号传递多部分