我正在尝试POST到Adobe Sign API。即使您不熟悉API,这应该是一个非常简单的问题。
Sign的文档说我需要做的POST看起来像这样:
POST /api/rest/v5/transientDocuments HTTP/1.1
Host: api.na1.echosign.com
Access-Token: MvyABjNotARealTokenHkYyi
Content-Type: multipart/form-data
Content-Disposition: form-data; name="File"; filename="MyPDF.pdf"
<PDF CONTENT>
这是我当前的代码,使用Python请求:
def createTransientDocument(your_file_base_url, file_name):
headers = {'access-token': datafile.accessToken,
'x-user-email': '<redacted for StackOverflow>',
'content-type': 'multipart/form-data'}
files = {'file': (file_name, open(your_file_base_url + file_name, 'rb'))}
r = requests.post(datafile.transient_documents_URL, files = files, headers=headers)
return r
不幸的是,这不是API所寻求的。我收到了回复:
*{"code":"BAD_REQUEST","message":"The request provided is invalid"}*
有关如何使用Requests库将我的PDF文件发布到此API的任何提示?
很抱歉n00b问题,但我现在正在学习Requests库。谢谢。
答案 0 :(得分:1)
这是一个细微差别,但你需要命名文件&#34; File&#34;使用大写字母F.否则API不会在Adobe Sign方面提取它。这是正确的(和工作的)API调用。
def createTransientDocument(your_file_base_url, file_name):
headers = {'access-token': datafile.accessToken,
'x-user-email': '<email redacted>',
'content-disposition':'form-data'}
files = {'File': open(your_file_base_url+file_name, 'rb')}
r = requests.post(datafile.transient_documents_URL, files=files, headers=headers)
return r