2017-05-04 94 views
1

我试图通过RestAPI v2使用下面的代码检索签名的文档。DocuSign - RestApi v2 - 使用C#下载文档

url = baseURL + "/accounts/" + "3602fbe5-e11c-44de-9e04-a9fc9aa2aad6" + "/envelopes/" + envId + "/documents/combined"; 
HttpWebRequest request4 = (HttpWebRequest)WebRequest.Create(url); 
request4.Method = "GET"; 
request4.Headers.Add("X-DocuSign-Authentication", authHeader); 
request4.Accept = "application/pdf"; 
request4.ContentType = "application/json"; 
request4.ContentLength = 0; 
HttpWebResponse webResponse4 = (HttpWebResponse)request4.GetResponse(); 

StreamReader objSR = new StreamReader(webResponse4.GetResponseStream()); 

StreamWriter objSW = new StreamWriter(@"C:\Users\reddy\Desktop\Docusign\test_" + envId + ".pdf"); 
objSW.Write(objSR.ReadToEnd()); 
objSW.Close();  
objSR.Close(); 

有了上面的代码,我可以保存一个PDF文件,但有些东西是不正确的。有人可以帮我修复我的错误代码。

下载的文档: Downloaded Document

原始文件: Original document

回答

3

选项1:您可以简单地使用System.Net.WebClient

string url = baseURL + "/accounts/" + accountId + "/envelopes/" + envId + "/documents/combined"; 
string path = @"C:\Users\reddy\Desktop\Docusign\test_" + envId + ".pdf"; 
using (var wc = new System.Net.WebClient()) 
{ 
    wc.Headers.Add("X-DocuSign-Authentication", authHeader); 
    wc.DownloadFile(url, path); 
} 

选项2:复制输入流到输出FileStream

var request = (HttpWebRequest)WebRequest.Create(url); 
request.Method = "GET"; 
request.Headers.Add("X-DocuSign-Authentication", authHeader); 

using (var response = (HttpWebResponse)request.GetResponse()) 
{ 
    using (var stream = File.Create(path)) 
     response.GetResponseStream().CopyTo(stream); 
} 

选项3:使用的DocuSign C# SDK

查看完整的代码here

var envApi = new EnvelopesApi(); 
var docStream = envApi.GetDocument(accountId, envelopeId, "combined"); 
using (var stream = File.Create(filePath)) 
    docStream.CopyTo(stream); 

也看到这个answer

+0

运作良好。谢谢。你在我的上面的代码中看到任何问题吗? – Reddy

+0

更新了我的答案,其他几个选项使用docusign rest API下载文档。 –

+0

谢谢。信封有效期多长?以及我们可以下载签署的文件多长时间? – Reddy