首页
学习
活动
专区
圈层
工具
发布

和EchoSign
EN

Stack Overflow用户
提问于 2014-09-23 02:27:31
回答 2查看 490关注 0票数 1

我正在尝试将一个文件发布到EchoSign API中,除了python之外,它在任何地方都对我起作用。

我这里有CURL命令,运行得很好。

代码语言:javascript
复制
curl -H "Access-Token: API_KEY" \
 -F File=@/home/user/Desktop/test123.pdf \
 https://secure.echosign.com/api/rest/v2/transientDocuments

这是我的请求函数。它将上传PDF文件,但与垃圾,而CURL完美地工作。

代码语言:javascript
复制
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')

我做错什么了??我也尝试过将文件作为数据而不是文件发布,但结果还是一样。

谢谢

编辑

当我加入

代码语言:javascript
复制
data = {
    'Mime-Type': 'application/pdf',
    'File-Name': 'abc.pdf'
}

所以,我的新职能是:

代码语言:javascript
复制
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')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-23 03:05:10

这就是它的工作原理。

代码语言:javascript
复制
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')
票数 2
EN

Stack Overflow用户

发布于 2014-09-23 03:00:06

尝试传入文件名和mime类型,如下所示:

代码语言:javascript
复制
files = {
    'File': (
        os.path.basename(file_path),
        f,
        'application/pdf',
    )
}

参考文献:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25985934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档