2016-03-16 37 views
1

我很可能做错了什么,但不知道是什么。我正在尝试使用FF海报测试NetSuite Restlet(Web服务)。我可以通过在URL中传递数据来使用Get来工作。但是,我使用Put方法得到一个错误。把不工作使用海报

{ “错误”:{ “代码”: “SYNTAX_ERROR”, “消息”: “语法错误:。空JSON字符串(空$ LIB#3)”}}

它打我的catch块下面。我读到创建或更新我们应该使用Put所以不确定为什么Get works但不Put?

function CreateRecord(jsonobject) 
{ 
    try 
    { 
     nlapiLogExecution('DEBUG', ' in get = '); 

     var jsonString = JSON.stringify(jsonobject) 
     nlapiLogExecution('ERROR', 'JSON', jsonString); 

     // Mandatory 
     var name = jsonobject["name"]; 
     nlapiLogExecution('DEBUG', ' name = ', name); 

     var record = nlapiCreateRecord('customrecordtest'); 
     record.setFieldValue('name', name); 
     var id = nlapiSubmitRecord(record, true); 
     nlapiLogExecution('DEBUG', 'id = ', id); 
     return jsonobject; 
    } 
    catch (err) 
    { 
     nlapiLogExecution('ERROR', 'Error', err.message);  
     return err.message; 
    } 
} 

海报:

https://rest.sandbox.netsuite.com/app/site/hosting/restlet.nl?script=351&deploy=1&name=Restlet测试

+0

您可以添加您的Restlet代码? – prasun

+0

当然。我已经浓缩它使它更具可读性。 – MG2016

+0

从错误看来,它似乎是由于无效的JSON导致的错误。请检查您发送的JSON作为您的PUT方法的playload – Rockstar

回答

2

PUT请求不会看在URL数据。它将在请求本身中寻找JSON。所以,而不是&name=Restlet Test,您将需要发送请求的主体中的对象,如{ "name" : "Restlet Test" }