我试图将一个瞬态文档文件上传到Adobe注册C#,它让我的智慧最终试图让它工作。
我甚至联系了Adobe,甚至他们也不知道该怎么做。
我的代码如下:
if (!File.Exists(@"documents\1-Registration Form.pdf"))
{
return;
}
Models objGetData = new Models();
RestClient objClient = new RestClient("https://api.na1.echosign.com:443/api/rest/v5");
RestRequest objRequest = new RestRequest("transientDocuments", Method.POST);
objRequest.AddFile("file", File.ReadAllBytes(@"documents\1-Registration Form.pdf"), "1-Registration Form.pdf");
objRequest.AddHeader("Access-Token", "-My Token Here-");
objRequest.RequestFormat = DataFormat.Json;
IRestResponse objResponse = objClient.Execute(objRequest);
var content = objResponse.Content;
JObject jsonLinq = JObject.Parse(content);
try
{
var objResultObjects = AllData(jsonLinq).First(c => c.Type == JTokenType.Array && c.Path.Contains("libraryDocumentList")).Children<JObject>();
}
catch(Exception ex)
{
ex.LogExceptionToDatabase();
}
return;
以下是我最近一次尝试后得到的回复:
"{\"code\":\"NOT_FOUND\",\"message\":\"Resource not found\"}"
我通常会收到错误请求,说文件不存在或找不到错误,但它们并不总是相同。
所有帮助将不胜感激。
编辑:
以下代码会给出一个包含库文档列表的回复,因此我知道它不是URL。
var objGetData = new Models();
var objClient = new RestClient("https://api.na1.echosign.com:443/api/rest/v5");
var objRequest = new RestRequest("libraryDocuments", Method.GET);
objRequest.AddHeader("Access-Token", "- My Key -");
objRequest.RequestFormat = DataFormat.Json;
objRequest.AddBody(objGetData);
IRestResponse objResponse = objClient.Execute(objRequest);
var content = objResponse.Content;
JObject jsonLinq = JObject.Parse(content);
解决方案:
var objClient = new RestClient(@"https://api.na1.echosign.com:443/api/rest/v5/");
var objRequest = new RestRequest(@"transientDocuments", Method.POST);
var thisFile = File.ReadAllBytes( @"documents\1-Registration Form.pdf");
objRequest.AddFile("File", File.ReadAllBytes( @"documents\1-Registration Form.pdf"), "1-Registration Form.pdf");
objRequest.AddHeader("Access-Token", "-MyToken-");
objRequest.RequestFormat = DataFormat.Json;
IRestResponse objResponse = objClient.Execute(objRequest);
var content = objResponse.Content;
JObject jsonLinq = JObject.Parse(content);
答案 0 :(得分:1)
这样做了。显然“文件”很糟糕但“文件”没问题。
var objClient = new RestClient(@"https://api.na1.echosign.com:443/api/rest/v5/");
var objRequest = new RestRequest(@"transientDocuments", Method.POST);
var thisFile = File.ReadAllBytes( @"documents\1-Registration Form.pdf");
objRequest.AddFile("File", File.ReadAllBytes( @"documents\1-Registration Form.pdf"), "1-Registration Form.pdf");
objRequest.AddHeader("Access-Token", "-MyToken-");
objRequest.RequestFormat = DataFormat.Json;
IRestResponse objResponse = objClient.Execute(objRequest);
var content = objResponse.Content;
JObject jsonLinq = JObject.Parse(content);
答案 1 :(得分:0)
不确定URI是否正确,请检查RestClient末尾缺少'/'(不应该但仍然需要)。
最后,如果您浏览到Angular 1中的位置,它会给您带来同样的问题吗?我问,因为测试起来要轻得多,你可以看到使用F12开发人员工具正是从开放式https频道回来的内容。