2017-05-04 98 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