java - 如何从 DocuSign 的信封中下载文档?
问题描述
我需要使用 DocuSign 的其余服务从信封下载文档。
我正在使用的系统是 Javascript,但使用的是 Java 圣经。
我正在通过 java.net.URL 调用该方法,但无法获取要在系统上使用的文件字节。
我试图读取返回的 InputStream,但这不会返回带有 base64 的 XML。
var url = new java.net.URL('https://demo.docusign.net/restapi/v2.1/accounts/0c2ddaae-e258-4ade-a435-e4ee50fd2542/envelopes/c60565e2-40d9-43f3-bb2d-58e086c20fca/documents/1');
var connection = url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("GET");
connection.setRequestProperty("X-DocuSign-Authentication", '{"Username":"user","Password":"password=","IntegratorKey": "guid"}');
connection.setRequestProperty("content-type", "text/xml;charset=UTF-8");
if(connection.getResponseCode() == 200){
try{
var retorno = new java.io.BufferedReader(new java.io.InputStreamReader(connection.getInputStream()));
var retData = new java.lang.StringBuilder();
var line;
while((line = retorno.readLine()) != null){
retData.append(line);
}
var strData = retData.toString();
当我使用 SoapUi 时,我收到:JVBERi0xLjQKJfv8/blablalblalblalba
但在我的代码中,我收到如下内容:
HTTP/1.1 200 OK 缓存控制:无缓存内容长度:122448
内容类型:application/pdf X-RateLimit-Reset:1561921200
X-RateLimit-限制:1000 X-RateLimit-剩余:955
X-DocuSign-TraceToken:c5710b05-b13c-460f-b04a-1e683471934e
内容处置:文件;文件名=空白1.pdf;documentid=1 日期:
格林威治标准时间 2019 年 6 月 30 日星期日 18:51:47
解决方案
您使用EnvelopeDocuments::get API 方法。
请参阅代码示例。
请参阅Java 示例实现
请注意,它documentId
可以是信封中特定文档的 id,也可以是保留值之一:
combined
-- 将下载一个包含所有信封文件的 PDFarchive
-- 将下载一个 zip 文件。
您的代码示例意味着您正在尝试通过流式传输目标数据来优化下载。这些天,内存便宜(真实的和虚拟的),我建议你简单地将文档下载到内存中,然后处理它。
如有必要,您可以稍后优化以使用流。
推荐阅读
- java - 功能停止保存 forge 1.12.2
- azure - Azure Blob 存储生命周期管理 - 嵌入式文件夹
- android - 语言有时会在我的 Android 应用程序中更改为语言系统
- javascript - 如何将 PDF 转换为 PNG 数组并将它们下载为 .zip 文件?
- node.js - 类型错误:newUser.find 不是函数
- python - 将图像保存到同一目录 Python 中的文件夹中
- python-3.x - Ansible Help: "msg": "该任务包含一个带有未定义变量的选项
- c# - 无法单击 Datagridview 单元格中的按钮(Winforms)
- mysql - 如果项目或其子项与标签匹配,则选择项目
- javascript - 当我在 wordpress 的文本编辑器中添加脚本代码时,什么都没有显示