我正在尝试将一个文件发布到EchoSign API中,除了python之外,它在任何地方都对我起作用。
我这里有CURL命令,运行得很好。
curl -H "Access-Token: API_KEY" \
-F File=@/home/user/Desktop/test123.pdf \
https://secure.echosign.com/api/rest/v2/transientDocuments这是我的请求函数。它将上传PDF文件,但与垃圾,而CURL完美地工作。
api_url = 'https://secure.echosign.com/api/rest/v2'
def send_document(file_path, access_token=access_token):
"""Uploads document to EchoSign and returns its ID
:param access_token: EchoSign Access Token
:param file_path: Absolute or relative path to File
:return string: Document ID
"""
headers = {'Access-Token': access_token}
url = api_url + '/transientDocuments'
with open(file_path, 'rb') as f:
files = {
'File': f,
}
return requests.post(url, headers=headers, files=files).json().get('transientDocumentId')我做错什么了??我也尝试过将文件作为数据而不是文件发布,但结果还是一样。
谢谢
编辑
当我加入
data = {
'Mime-Type': 'application/pdf',
'File-Name': 'abc.pdf'
}所以,我的新职能是:
def send_document(file_path, access_token=access_token):
"""Uploads document to EchoSign and returns its ID
:param access_token: EchoSign Access Token
:param file_path: Absolute or relative path to File
:return string: Document ID
"""
headers = {
'Access-Token': access_token,
}
data = {
'Mime-Type': 'application/pdf',
'File-Name': 'abc.pdf'
}
url = api_url + '/transientDocuments'
files = {'File': open(file_path, 'rb')}
return requests.post(url, headers=headers, data=data,
files=files).json().get('transientDocumentId')发布于 2014-09-23 03:05:10
这就是它的工作原理。
def send_document(file_path, access_token=access_token):
"""Uploads document to EchoSign and returns its ID
:param access_token: EchoSign Access Token
:param file_path: Absolute or relative path to File
:return string: Document ID
"""
headers = {
'Access-Token': access_token,
}
data = {
'Mime-Type': 'application/pdf',
'File-Name': 'abc.pdf'
}
url = api_url + '/transientDocuments'
files = {'File': open(file_path, 'rb')}
return requests.post(url, headers=headers, data=data,
files=files).json().get('transientDocumentId')发布于 2014-09-23 03:00:06
尝试传入文件名和mime类型,如下所示:
files = {
'File': (
os.path.basename(file_path),
f,
'application/pdf',
)
}参考文献:
man curl,见--trace-file FILE论述https://stackoverflow.com/questions/25985934
复制相似问题