我必须使用REST API将文件和信息上传到服务器。那个API使用了一个多部分的表单,但是我似乎不能正确地使用它。
以下是我根据API文档使用的信息。
表单参数:
示例请求:
POST /api/v1/distribution HTTP/1.1
Host: api.company.onbe
Authorization: t=...
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryZayrf7leHxinyQsX
------WebKitFormBoundaryZayrf7leHxinyQsX
Content-Disposition: form-data; name="release_notes_url"
http://releases/3.0.0/release_notes_3_0_0.pdf
------WebKitFormBoundaryZayrf7leHxinyQsX
Content-Disposition: form-data; name="description"
This is the new distribution!
------WebKitFormBoundaryZayrf7leHxinyQsX
Content-Disposition: form-data; name="zip_file"; filename="BackEnd-3.0.0.zip"
Content-Type: application/x-zip-compressed
------WebKitFormBoundaryZayrf7leHxinyQsX--
我尝试了一些事情,例如下面的代码,但是我不断从服务器得到错误的请求。
import requests
file= open('BackEnd-3.0.0.zip','r').read()
url = 'api.company.onbe/api/v1/distribution'
payload = {
'description' :'Some desc',
'release_notes_url':'Someurl.pdf',
'zip_file': file
}
response = requests.post(url, data=payload)
文档有一个示例http://requests.readthedocs.org/en/latest/user/quickstart/#post-a-multipart-encoded-file
你应该从简单的用例开始。
这个答案还解释了如何将文件和数据一起使用。
https://stackoverflow.com/a/12385661/1182891
下面是一个适用于需要剪切粘贴代码的人的示例。httpbin返回一个json数据结构,描述您发出的请求。在本例中,您可以看到
files
包含发布的文件数据,而form
包含表单变量。headers
表明这确实是一个multipart/form-data
请求。享受!
相关问题 更多 >
编程相关推荐