C# 使用C将PDF读入NetSuite的问题#
在我的RESTlet中,我在日志中看到一个错误:Code:意外错误null Code:UNEXPECTED\u error:C# 使用C将PDF读入NetSuite的问题#,c#,netsuite,C#,Netsuite,在我的RESTlet中,我在日志中看到一个错误:Code:意外错误null Code:UNEXPECTED\u error: var pdf = data.pdfdoc; nlapiLogExecution('DEBUG', 'in data', pdf); 我认为传入的数据没有正确读取。有什么不寻常的吗 var pdf = data.pdfdoc; nlapiLogExecution('DEBUG', 'in data', pdf); static void Main(string[
var pdf = data.pdfdoc;
nlapiLogExecution('DEBUG', 'in data', pdf);
我认为传入的数据没有正确读取。有什么不寻常的吗
var pdf = data.pdfdoc;
nlapiLogExecution('DEBUG', 'in data', pdf);
static void Main(string[] args)
{
try
{
FileStream stream = new FileStream(@"C:\Users\simplified.PDF", FileMode.Open, FileAccess.ReadWrite);
byte[] fileBytes = new byte[stream.Length];
stream.Read(fileBytes, 0, fileBytes.Length);
stream.Close();
string jsonString = "{\"tranid\":\"18810\", \"pdfdoc\":\"" + fileBytes + "\"" + "}";
WebRequest request = WebRequest.Create("https://rest.sandbox.netsuite.com/app/site/hosting/restlet.nl?script=332&deploy=1");
request.ContentType = "application/json";
request.Method = "PUT";
request.Headers.Add("Authorization:NLAuth nlauth_account=XXX, nlauth_email=test@test.com, nlauth_signature=xxx, nlauth_role=18");
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(jsonString);
}
WebResponse response = request.GetResponse();
Console.Write(response);
Console.Read();
}
catch (FileNotFoundException e)
{
Console.Write(e);
}
}
编辑代码现在正在NetSuite中创建pdf文档,但不显示内容
var pdf = data.pdfdoc;
nlapiLogExecution('DEBUG', 'in data', pdf);
再出租
var pdf = data.pdfdoc;
nlapiLogExecution('DEBUG', 'in data', pdf);
试试看
{
var file=datain.file;
nlapiLogExecution('DEBUG','in data',file);
var base64content=nlapiEncrypt(文件'base64',null);
var doc=nlapiCreateFile('mydoc2.pdf','pdf',base64content);
文件集文件夹(115);
var fileid=nlapsubmitfile(doc);
nlapiLogExecution('DEBUG','after submit',fileid);
}
我相信NetSuite希望任何二进制数据都是base64编码的。因此,如果我这样做:string encodedData=Convert.ToBase64String(fileBytes);然后我如何将字符串传递给stream.Read,因为我无法将字符串转换为字节?我对C#file reading API一无所知。我所知道的是,我相信在HTTP请求中传递给NetSuite的任何内容都必须是base64。文件正在创建,但内容没有显示-可能发生错误,因为内容是二进制的,所以我们认为可以使用nlapiEncrypt,但这不起作用。请尝试{var file=datain.file;nlapiLogExecution('DEBUG','in data',file);var base64content=nlapiEncrypt(file,'base64',null);var doc=nlapiCreateFile('mydoc2.pdf','pdf',base64content');doc.setFolder(115);var fileid=nlapisomitfile(doc);nlapiLogExecution('DEBUG','after submit',fileid);}设法解决它。我需要的不是datain.file,而是datain.pdfdoc