2015-09-23 46 views
1

张贴在usergrid文件我能够发布文件,curl无法使用请求

curl -X POST -i -F name='memo.txt' -F [email protected]/home/tester/Desktop/memo.txt 
'http://localhost:8080/***/***/concerts/008? 
access_token=YWMtraI2DF21EeWx_Rm4tdnmrwAAAVACjcyGG8TpdXJBXdjnRJ2SeqIAZI1T8Xk' 

但是,当我试图用requests.post同样的事情,文件没有上传到服务器。有人知道为什么会发生这种情况。

import requests 

url = 'http://localhost:8080/***/***/concerts/008' 
files = { 
    'memo.txt': open('/home/tester/Desktop/memo.txt', 'rb'), 
    'name': 'memo.txt' 
} 
r = requests.post(
    url, files=files, 
    params=dict(access_token='YWMtraI2DF21EeWx_Rm4tdnmrwAAAVACjcyGG8TpdXJBXdjnRJ2SeqIAZI1T8Xk') 
) 

回答

2

你似乎缺少name场,添加到您的files字典,或到一个新的data字典(无论是罚款)。您的文件应该命名为file

import requests 

url = 'http://localhost:8080/***/***/concerts/008' 
files = {'file': open('/home/tester/Desktop/memo.txt','rb')} 
data = {'name': 'memo.txt'} 
params = {'access_token': 'YWMtraI2DF21EeWx_Rm4tdnmrwAAAVACjcyGG8TpdXJBXdjnRJ2SeqIAZI1T8Xk'} 
r = requests.post(url, data=data, files=files, params=params) 

import requests 

url = 'http://localhost:8080/***/***/concerts/008' 
files = { 
    'file': open('/home/tester/Desktop/memo.txt','rb'), 
    'name': 'memo.txt' 
} 
params = {'access_token': 'YWMtraI2DF21EeWx_Rm4tdnmrwAAAVACjcyGG8TpdXJBXdjnRJ2SeqIAZI1T8Xk'} 
r = requests.post(url, files=files, params=params) 
+0

我包括'files'字典的名字,但仍然是文件不上传...我可以上传文件,上面提到的curl请求.. – Lionel

+0

@Pattinson:啊,我的错误,我错过了你命名的字段'memo.txt';该字段在curl请求中被命名为'file'。 –

+0

谢谢...我很想念它 – Lionel