Не удалось сгенерировать токен, используя метод getd в модуле Nestuite https

Идея состоит в том, чтобы подключиться к внешней системе из NS и получить токен из ответа https. Прежде всего, я преобразовал пару (логин, пароль) в base64, затем я создал заголовок, содержащий параметры авторизации в определенном формате, и, наконец, я отправил свой запрос https. Но возвращается код ответа 406, а не 200:/ .

Ниже приведен пример структуры моего кода

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 = {
    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);
    }

Есть ли у вас идеи об этом! и большое спасибо:D

2 ответа

Я должен опубликовать свое решение для другого разработчика 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);
    }

Пожалуйста, проверьте значение ошибки 406

А затем рассмотрите API-документы системы, к которой вы пытаетесь подключиться. Вам может понадобиться заголовок Accept или, возможно, неправильно настроен принимающий сервер, и они не принимают запросы GET и должны были вместо этого вернуть 405.

Наконец, я предполагаю в вашем образце: https:/..../api/auth/token .... является заменой реального имени хоста. В противном случае ваш ответ будет своего рода относительным ответом самого Netsuite.

Другие вопросы по тегам