如何从DocuSign的信封中下载文档?

时间:2019-06-30 19:46:13

标签: java rest docusignapi

我需要使用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-Limit:1000 X-RateLimit-剩余:955

     

X-DocuSign-TraceToken:c5710b05-b13c-460f-b04a-1e683471934e

     

Content-Disposition:文件; filename = blank1.pdf; documentid = 1日期:

     

2019年6月30日星期日18:51:47 GMT

1 个答案:

答案 0 :(得分:0)

您使用EnvelopeDocuments::get API方法。

请参见code example

请参见Java example implementation

请注意,documentId可以是信封中特定文档的ID或保留值之一:

  • combined-将下载包含信封所有文档的单个PDF
  • archive-将下载一个zip文件。

您的代码示例表明您正在尝试通过流传输目的地数据来优化下载。如今,由于便宜的内存(真实的和虚拟的),我建议您只是将文档下载到内存中,然后处理它。

您以后可以根据需要优化使用流。