このAdobeSign API エンドポイントにドキュメントをアップロードしようとしています
以下のコードを使用して、 RestSharp RestClientで正常に実行する方法を見つけました。
var client = new RestClient("https://api.na2.echosign.com/api/rest/v6/transientDocuments");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer MyIntegratorKey");
var bytes = Convert.FromBase64String(base64Document);
var contents = new MemoryStream(bytes);
request.Files.Add(new FileParameter
{
Name = "File",
Writer = (s) =>
{
var stream = contents;
stream.CopyTo(s);
stream.Dispose();
},
FileName = "Test2.pdf",
ContentType = null,
ContentLength = bytes.Length
});
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
.NET HttpClientを使用しようとすると問題が発生します。以下のコードはドキュメントを正常にアップロードしますが (アドビから HTTP 201 が返されます)、署名者がドキュメントを開くとドキュメントが完全に台無しになります。
.NET HttpClient はファイルのアップロードをサポートしていませんか? 私のストリームに何か問題がありますか? 前もって感謝します
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = AuthenticationHeaderValue.Parse("Bearer IntegratorKey");
using (var content = new MultipartFormDataContent())
{
content.Add(new StreamContent(new MemoryStream(Convert.FromBase64String(document.EmbeddedContent))), "File", "Test2.pdf");
using (
var message =
await client.PostAsync("https://api.na2.echosign.com/api/rest/v6/transientDocuments", content))
{
var input = await message.Content.ReadAsStringAsync();
Console.WriteLine(input);
}
}
}