curl - Python request 上傳文件
問題描述
我嘗試用 curl 提交成功
curl --form file=@/home/test/sample.png --form username=test@noreply.com --form password=test --insecure --form lang[0]=cn --form lang[1]=jp --form langs[2]=en https://www.example.com/api
但我用 requests 嘗試了以下方法,卻得不到正確結果。請問正確的應該怎么寫?
data = { ’file’: open(’/home/test/test.png’,’rb’), ’username’: ’test@noreply.com’, ’password’: ’test’, ’lang[0]’: ’cn’, ’lang[1]’: ’jp’, ’lang[2]’: ’en’}r = requests.post(’https://www.example.com/api’, data=data, verify=False)
file = { ’file’: open(’/home/test/test.png’,’rb’) }data = { ’username’: ’test@noreply.com’, ’password’: ’test’, ’lang[0]’: ’cn’, ’lang[1]’: ’jp’, ’lang[2]’: ’en’}r = requests.post(’https://www.example.com/api’, data=data, files=file, verify=False)
另外我用 httpbin 測試,curl代碼 和 第二段代碼發出的請求是一樣的,但是 Python 得不到返回的 ID.
問題解答
回答1:files = {’file’: open(’test.png’, ’rb’)}requests.post(url, files=files)
參考 http://www.python-requests.or...
http://www.python-requests.or...
回答2:with open(’filename1’, ’rb’) as f1, open(’filename2’, ’rb’) as f2: files_to_upload = {’filename1’: f1,’filename2’: f2, }response = requests.post(url, files=files_to_upload)
相關文章:
1. javascript - jQuery each 方法第三個參數args 如何解釋?2. java - 阿里的開發手冊中為什么禁用map來作為查詢的接受類?3. apache - 想把之前寫的單機版 windows 軟件改成網絡版,讓每個用戶可以注冊并登錄。類似 qq 的登陸,怎么架設服務器呢?4. java - 關于i++的一個題目5. css3 - Typecho 后臺部分表單按鈕在 Chrome 下出現靈異動畫問題,求解決6. javascript - 為什么嵌套的Promise不能按預期捕獲Exception?7. webgl - android上類似汽車之家的3d全景照片怎么實現8. python - uwsgi+django的搭建問題9. python - Pycharm的Debug用不了10. 請教MVC分發控制器時的相關內容
