Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netsuite内部URL内容调用_Netsuite_Suitescript_Scriptlet - Fatal编程技术网

Netsuite内部URL内容调用

Netsuite内部URL内容调用,netsuite,suitescript,scriptlet,Netsuite,Suitescript,Scriptlet,我正在写一个脚本,想从URL请求中读取内容 但它不是读取内容,而是登录页面并登录初始登录页面。知道怎么读吗 NetSuite不支持您正在执行的操作。APIRL不是一个NetSuite端点,您可以从NetSuite外部调用它并获得响应。这是完全可以做到的。问题是您没有提供任何授权。如果不想获得登录页面,则必须提供授权标头。我已经在下面更新了您的代码(并且测试没有问题,除了我不相信该页面将显示为XML?)。只需添加正确的身份验证信息 require(['N/record','N/https'],fu

我正在写一个脚本,想从URL请求中读取内容


但它不是读取内容,而是登录页面并登录初始登录页面。知道怎么读吗

NetSuite不支持您正在执行的操作。APIRL不是一个NetSuite端点,您可以从NetSuite外部调用它并获得响应。

这是完全可以做到的。问题是您没有提供任何授权。如果不想获得登录页面,则必须提供授权标头。我已经在下面更新了您的代码(并且测试没有问题,除了我不相信该页面将显示为XML?)。只需添加正确的身份验证信息

require(['N/record','N/https'],function(record,https){
  function test(){
    var header=[];
    header['Content-Type']='text/xml';
    header['Authorization']='NLAuth nlauth_account=NETSUITEACCOUNT,nlauth_email=LOGINEMAIL,nlauth_signature="LOGINPASSWORD",nlauth_role=3'
var apiURL='https://system.na2.netsuite.com/app/setup/upload/csv/csvstatus.nl?xml=T';
    var response=https.get({
        url:apiURL,
        headers:header
    });
    log.debug('response.body',JSON.stringify(response.body));
  }
  test();
});

这是否为您提供了所需的答案?它可能会起作用,但我想说的是,NS不支持这样做。如果NS发现存在漏洞,他们可能会将其删除,而您的解决方案将无法工作。此外,您可能违反了NS的条款和协议,其中某个地方说您只能使用基于其产品的功能。xml=t实际上仅供NS内部使用,不应公开。但他们不能阻止前NS员工使用和传播这个词。如果您以内部开发人员的身份向客户提供解决方案,这应该没问题,因为您可以修复它(如果可能),但如果您的解决方案不可用,那么如果由于NS删除了该漏洞而停止工作,则对客户不利。这是一个“使用它的风险自负”的问题,正如我们经常对开发NS不支持的东西的客户所说的那样(当我还在支持时)。xml=T不仅供内部NetSuite员工使用。。。?甚至在SuiteWorld今年的一次演讲中,他们提到使用它可以更容易地从页面上获取记录数据(类似于Arindam所做的)。而且,这绝对不是一种利用。利用漏洞是完全不同的,甚至与您错误地声明xml=T是什么完全不同当我支持时,我们不允许共享xml=T,这大约是在2010-2013年。他们提供了xml=t,这是一件好事。我正在尝试从内部ScriptLet调用APIRL。你认为这是可以实现的任何其他方式。。。
require(['N/record','N/https'],function(record,https){
  function test(){
    var header=[];
    header['Content-Type']='text/xml';
    header['Authorization']='NLAuth nlauth_account=NETSUITEACCOUNT,nlauth_email=LOGINEMAIL,nlauth_signature="LOGINPASSWORD",nlauth_role=3'
var apiURL='https://system.na2.netsuite.com/app/setup/upload/csv/csvstatus.nl?xml=T';
    var response=https.get({
        url:apiURL,
        headers:header
    });
    log.debug('response.body',JSON.stringify(response.body));
  }
  test();
});