我正在尝试在信用卡处理器和客户端的NetSuite帐户之间建立连接器,以帮助自动化其对帐过程。从他们的卡处理器中提取信息没有任何问题,除非偶尔会有自己的错误500.仍然试图找到一种方法来更好地处理它而不是我正在做的事情。
无论如何,当我尝试在NetSuite帐户中连接到RESTlet时,问题就出现了。我似乎无法正确连接它,我得到的只是错误500响应。这个问题似乎不是RESTlet,因为我可以使用“发送HTTP工具”之类的工具来测试它。这是我目前正在使用的代码:
JavaScriptSerializer jss = new JavaScriptSerializer();
String content = jss.Serialize(rd);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(this.nsURL);
req.ContentType = "application/json";
req.ContentLength = content.Length;
req.Method = "POST";
WebHeaderCollection headers = new WebHeaderCollection();
headers.Add("User-Agent-X", "SuiteScript-Call");
headers.Add("Authorization", String.Format("NLAuth nlauth_account={0},nlauth_email={1},nlauth_signature={2},nlauth_role={3}",
this.nsAccount, this.nsEmail, this.nsPassword, this.nsRole));
req.Headers = headers;
using (StreamWriter requestWriter = new StreamWriter(req.GetRequestStream()))
{
requestWriter.Write(content);
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); // error occurs here
Stream stream = resp.GetResponseStream();
using (StreamReader reader = new StreamReader(stream))
{
String response = reader.ReadToEnd();
Console.WriteLine(response);
}
这是记录的错误:
[System.Net.WebException] The remote server returned an error: (500) Internal Server Error.
在我尝试从HttpWebRequest对象检索响应时发生错误。我已经尝试将数据作为字节数组发送,但是在实际将数据写入连接的点上会导致不同的错误。 RESTlet还设置为在调用时记录它接收的数据,但是在甚至可以触发RESTlet函数之前发生此错误。
我花了太多时间尝试各种不同的“修复”,以便在没有运气的情况下使用它。
----编辑----
忘记提及我正在使用Visual Studio 2010 Pro并以.NET 4为目标。