小编use*_*138的帖子

Python请求多部分HTTP POST

我想知道你如何使用Python请求翻译这样的东西?在urllib2中,您可以手动操作通过线路发送到API服务的数据,但是请求声明多部分文件上传很容易.但是,当尝试使用请求库发送相同的请求时,我认为它没有正确地为内容类型中的每个部分指定一些关键参数.有人可以就这件事情说清楚.先感谢您!

def upload_creative(self, account_id, file_path):
    """"""
    boundary = '-----------------------------' + str(int(random.random()*1e10))
    parts = []

    # Set account ID part.
    parts.append('--' + boundary)
    parts.append('Content-Disposition: form-data; name="account_id"')
    parts.append('')
    parts.append(str(account_id))

    # Set creative contents part.
    parts.append('--' + boundary)
    parts.append('Content-Disposition: form-data; name="userfile"; filename="%s"' % file_path)
    parts.append('Content-Type: %s' % mimetypes.guess_type(file_path)[0] or 'application/octet-stream')
    parts.append('')
    # TODO: catch errors with opening file.
    parts.append(open(file_path, 'r').read())

    parts.append('--' + boundary + '--')
    parts.append('')

    body = '\r\n'.join(parts)

    headers = {'content-type': 'multipart/form-data; boundary=' + boundary}
    url = self._resolve_url('/a/creative/uploadcreative')
    req = urllib2.Request(url, headers=headers, …
Run Code Online (Sandbox Code Playgroud)

python multipartform-data urllib2 python-requests

5
推荐指数
1
解决办法
2万
查看次数