无法使用Nestuite模块https中的方法get生成令牌

时间:2018-07-19 15:57:40

标签: netsuite suitescript suitescript2.0 suitetalk suitecloud

这个想法是从NS连接到外部系统并从https响应获取令牌。 首先,我将这对代码(登录名,密码)转换为base64,然后创建了包含特定格式的授权参数的标头,最后发送了https请求。但是返回的响应代码是406,而不是200:/。

下面是我的代码结构的一个示例

SQL

您对此有任何想法!非常感谢:D

2 个答案:

答案 0 :(得分:0)

请签出meaning of the 406 error

然后考虑您要连接到的系统的api文档。您可能需要一个Accept标头,或者接收服务器的配置错误,并且它们不接受GET请求,而应该返回405。

最后,我假设在您的示例中:https:/..../api/auth/token ....代替了真实的主机名。否则,您的响应将是Netsuite本身的某种相对响应。

答案 1 :(得分:0)

我必须将解决方案发布给其他NS开发人员,非常感谢@JonLamb和@bknights为您提供的帮助我的答案!

我的代码现在可以使用!

var stringInput = "email:password";
		
		var base64EncodedString = encode.convert({
			string: stringInput,
			inputEncoding: encode.Encoding.UTF_8,
			outputEncoding: encode.Encoding.BASE_64
		});

		var auth = 'Basic ' + base64EncodedString;
		var _headers = false;
		_headers = {
        'Accept': 'application/json',
				'authorization': auth
		}; 
		var url_ = 'https:/..../api/auth/token';
    
			var  auth_resp = https.get({
				url: url_,
				headers: _headers
		});
    
    if (auth_resp.code == 200) {
			
		return  JSON.parse(auth_resp.body);
    }