如何解决NetSuite https.post方法响应给出错误“解析值时遇到意外字符:SPath”,第0行,位置0”
我正在尝试使用“ N / https”模块https.post()方法将以下JSON数据请求发送到第三方系统。
我得到的响应代码为“ 200”,并出现错误消息“解析值时遇到意外字符:S.路径”,行0,位置0”
请参考下面提供的我的代码
var requestData = {
"terminal": "345678","user": "TestUser1234","password": "XXXXXX","Currency": "USD","Total": "25","GoodURL": "https://gatewayxx.test.com/sandbox/landingpage","Language": "EN"
};
log.debug('Typeof - RequestData: ',typeof requestData);
var headerObj = new Array();
headerObj['Content-Type'] = 'application/json';
headerObj['Accept'] = 'application/json';
var response = https.post({
url: "https://gatewayxx.test.com",body: requestData
});
HTTPS POST响应消息:
{
"type": "http.ClientResponse","code": 200,"headers": {
"Cache-Control": "private","Server": "Microsoft-IIS/7.5","Content-Length": "152","Date": "Fri,02 Oct 2020 05:44:47 GMT","Content-Type": "text/html; charset=utf-8","Via": "1.1 mono002"
},"body": "{\"URL\":\"\",\"ConfirmationKey\":\"\",\"Error\":{\"ErrCode\":599,\"ErrMsg\":\"Unexpected character encountered while parsing value: S. Path '',line 0,position 0.\"}}"
}
我在JSON验证器中检查我的请求数据,其中没有错误。同样在代码中,我使用typeof属性对其进行了验证。它还将其显示为“对象”。
此外,如果您注意到响应消息,它会将响应“ Content-Type”作为“ text / html”而不是JSON数据。
我不确定发送JSON数据时发生了什么错误,有人可以帮我理解这个问题。
非常感谢。
解决方法
您要在标头中将JSON数据指定为Content-Type,但要在主体中传递JavaScript对象。您需要将对象字符串化为JSON字符串:
var response = https.post({
url: "https://gatewayxx.test.com",body: JSON.stringify(requestData)
});
而且,正如bluehank指出的那样,您没有随请求发送标头-您可能是说:
var response = https.post({
url: "https://gatewayxx.test.com",body: JSON.stringify(requestData),headers: headerObj
});
,
您似乎为请求创建了标题,但是最后您没有在发布请求中使用它。有什么特殊原因吗?
当您收到200响应代码时,这意味着POST请求已正确通过。但是,无论您尝试获得什么,它都在窃听。更具体地说,您会得到599错误代码,通常用于大多数代理的超时。因此问题可能不是您引起的,而是您正在使用的API
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。