2017-07-17 36 views
0

我想從另一個SuiteScript調用RestLet webservice/URL。據我所知,我需要使用http/https模塊來這樣做。但我無法找到一些例子或步驟來做到這一點。來自SuiteLet客戶端的NetSuite RestLet調用

計劃在SS2.0-

var response = http.post({ 
url: 'https://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=601&deploy=1', 
body: myDataObj, // json object 
headers: headerObj // json obj 
}); 

下面的代碼對我的作品中使用此代碼。

  var nameValue = "arin"; 
      var myDataObj = { 
       "name" : nameValue 
      }; 
      var myRequest = {}; 
      myRequest.headers = {}; 
      myRequest.headers["Authorization"] = 'NLAuth nlauth_account=TSTDRV158xxxx,nlauth_email=XXXX,nlauth_signature=XXXX,nlauth_role=3'; 
      myRequest.headers["Content-Type"] = 'application/json'; 
      myRequest.headers["Accept"] = '*/*'; 
      myRequest.url = 'https://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=601&deploy=1'; // RESTlet 
                               // URL 
      myRequest.method = "POST"; 
      myRequest.body = JSON.stringify(myDataObj); 
      // myRequest.body = myDataObj; 
      var myResponse = https.post(myRequest); 

及讀取JSON返回的響應數據...

 log.debug("Resonse", myResponse.body); 
     log.debug("Resonse", myResponse.code);   
     var data = myResponse.body;    
     var retObj = JSON.parse(data);    
     log.debug("Resonse Ret city - ", retObj.city); 

回答

2

下面是如何做到這一點的基本示例:

var myRequest = {}; 
myRequest.headers = {}; 
myRequest.headers["Authorization"] = 'NLAuth nlauth_account=TSTDRVXXXXX, [email protected], nlauth_signature=XXXXXXX, nlauth_role=3'; 
myRequest.headers["contentType"] = 'application/json'; 
myRequest.url = 'https://XXXXXXXXX'; //RESTlet URL 
myRequest.body = myDataObj; 
var myResponse = https.post(myRequest); 

小心在客戶方的腳本公開此。你不想公開你的憑證。

+0

謝謝... 按預期工作...我正在更新代碼。 – Arindam

+0

我在返回數據時發現了一個問題...如果服務器將數據作爲「JSON.stringify(retObj)」返回,那麼我需要在客戶端解析2次以獲取數據...... ' '' var data = JSON.parse(myResponse.body); \t \t \t \t \t \t \t \t 變種retObj = JSON.parse(數據); \t log.debug(「Resonse Ret data - 」,data.city); \t log.debug(「Resonse Ret ret - 」,retObj.city); ''' 第一個城市沒有價值...第二個給出... – Arindam

+0

問題是什麼?你正在獲取你需要的數據。 –