2017-04-17 57 views
0

這裏粗略地說明了請求通過fiddler看起來如何。我可以看到兩個額外的參數發送,我不能用python編程發送。Python請求表單數據爲每個請求添加內容長度

--13155ffa-71a1-4e80-b213-dd238786ee20 
    Content-Disposition: form-data; name="image"; filename="image.jpeg" 
    Content-Type: image/jpeg 
    Content-Length: 8557 

    --13155ffa-71a1-4e80-b213-dd238786ee20 
    Content-Disposition: form-data; name="lat" 
    Content-Length: 6 

    18.975 
    --13155ffa-71a1-4e80-b213-dd238786ee20 
    Content-Disposition: form-data; name="long" 
    Content-Length: 10 

第一個是Content-Length,第二個是文件下的Content-Type。請求中可以這樣做嗎?

回答

0

As stated in the documentation,在Content-Type可以通過使三元素的元組作爲files字典的值,例如被設定,:

requests.post(
    url, 
    files={ 
     'image': ('image.jpeg', filehandle, 'image/jpeg'), 
     'lat': ('filename', filehandle, 'text/plain'), 
     'long': ('filename', filehandle, 'application/octet-stream'), 
    }, 
) 

不能設置的Content-Length頭,作爲請求集它會自動爲你。如果(a)請求的長度錯誤,在這種情況下,你應該提交一個錯誤報告,或者(b)你想對服務器撒謊,你需要設置不同的內容長度,重新發送數據,這是錯誤的。

+0

謝謝,結果很好。 – taijamen