1
我想將一個文件發佈到EchoSign API中,除了python-requests外,它對我來說無處不在。python-requests和EchoSign
我這裏curl命令完美的作品
curl -H "Access-Token: API_KEY" \
-F [email protected]/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')
你能描述一下你的意思嗎?「它會上傳PDF文件但是垃圾」?如果你對https://httpbin.org/post發出同樣的請求,你會看到請求產生相同的請求。 – 2014-09-23 02:37:26
它將顯示一個包含所有奇怪字符的PDF文件 – vjanicek 2014-09-23 02:38:06