2
我做的使用請求模塊的簡單POST請求,並與編碼測試它反對httpbinPython'請求'模塊和編碼?
import requests
url = 'http://httpbin.org/post'
params = {'apikey':'666666'}
sample = {'sample': open('test.bin', 'r')}
response = requests.post(url, files=sample, params=params, verify=False)
report_info = response.json()
print report_info
我有一個問題。它沒有使用application/octet-stream
,所以編碼不正確。從標題,我看到:
{
u'origin': u'xxxx, xxxxxx',
u'files': {
u'sample': u'data:None;base64,qANQR1DBw..........
所以,我得到的data:None
代替data:application/octet-stream
當我嘗試用curl
。文件大小和編碼不正確。
我該如何強制或檢查它是否使用application/octet-stream
?從http://www.python-requests.org/en/latest/user/quickstart/#custom-headers
>>> import json
>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}
>>> headers = {'content-type': 'application/json'}
>>> r = requests.post(url, data=json.dumps(payload), headers=headers)
採取
感謝@thefourtheye您的建議,同時,做正確的文本添加到標題,這不是不改變編碼。該文件仍然編碼不正確。就好像python-requests沒有正確識別文件類型,所以它不能正確編碼,也不會正確添加'application/octet-stream'。 – user2927191
使用python請求:''Content-Type':'multipart/form-data;邊界= 9e13cb8a968a49c2b7c8781e701d2c13''。使用curl:'Content-Type「:」multipart/form-data;邊界= ------------------------ d0f3782a702ecbd9'。爲什麼不同? – user2927191
邊界字符串是僞隨機的;只要您在相同的HTTP請求中保持一致,這不是問題。 – TML