问题
I'm trying to retrieve a signed document via RestAPI v2 with below code.
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();
With above code, I'm able to save a PDF file but something is not right. Can someone help me fix my buggy code.
Downloaded Document:
Original document:
回答1:
Option 1: You can simply use the System.Net.WebClient class
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);
}
Option 2 : Copy the input stream to the output 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);
}
Option 3 : Using the DocuSign C# SDK
See full code here
var envApi = new EnvelopesApi();
var docStream = envApi.GetDocument(accountId, envelopeId, "combined");
using (var stream = File.Create(filePath))
docStream.CopyTo(stream);
Also see this answer
来源:https://stackoverflow.com/questions/43791128/docusign-restapi-v2-download-document-using-c-sharp