2013-12-07 17 views
0

我必須發佈一個文件以及一些數據到api。 這裏是Python代碼,我寫了測試:Python http發佈文件使用請求庫

fl={'payload' : open('C:/data/log2.txt')} 
params = { 
     'topic':'pos', 
     'store':storeID, 
     } 

r = requests.post(url,files=fl,data=params) 

print r.status 
print r.text 

但我總是得到一個消息說,「文件格式不正確」

我與郵差測試的API(Chrome擴展程序測試休息API),它似乎與郵遞員工作正常,我得到了成功的迴應,併發送文件,這裏是一個快照。

api test using postman

+0

你可以發佈你所得到的堆棧跟蹤? – John

+0

我沒有得到一個錯誤,我只是從服務器得到一個迴應,說「文件格式不正確」。 – rajat

+0

這聽起來像你的日誌文件格式不正確......你的代碼可能是好的。在你的問題中,你引用了兩個不同的文件,'amazonlog.log'和'log2.txt'。確保代碼中的文件與「amazonlog.log」具有相同的名稱並具有相同的內容。也許你需要'.log'的擴展......? – John

回答

1

From the docs

>>> url = 'http://httpbin.org/post' 
>>> files = {'file': open('report.xls', 'rb')} 

>>> r = requests.post(url, files=files) 
>>> r.text 
{ 
    ... 
    "files": { 
    "file": "<censored...binary...data>" 
    }, 
    ... 
} 

嘗試增加'rb'您打開語句,以便您上傳的二進制數據。

變化

fl={'payload' : open('C:/data/log2.txt')}

fl={'payload' : open('C:/data/log2.txt', 'rb')}

+0

也試過,它給了我同樣的錯誤。 – rajat