【问题标题】:Put not working using Poster使用海报放置不工作
【发布时间】:2016-03-16 12:21:34
【问题描述】:

我很可能做错了什么,但不确定是什么。我正在尝试使用 FF 海报测试 NetSuite Restlet(网络服务)。我可以通过在 URL 中传递数据来使用 Get 工作。但是,使用 Put 方法时出现错误。

{"error" : {"code" : "SYNTAX_ERROR", "message" : "SyntaxError: 空 JSON 字符串 (null$lib#3)。"}}

它击中了我下面的 catch 块。我读到要创建或更新我们应该使用 Put 所以不确定为什么 Get 有效但 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测试

【问题讨论】:

  • 你能添加你的 Restlet 代码吗?
  • 当然。我已经对其进行了压缩以使其更具可读性。
  • 从错误看来,错误似乎是由于无效的 JSON 引起的。请检查您作为 PUT 方法的播放负载发送的 JSON
  • 但这意味着 Get 也应该失败?
  • PUT 请求不会在 URL 中查找数据。它将在请求本身的正文中查找 JSON。因此,您需要在请求正文中发送一个对象,而不是&name=Restlet Test,例如{ "name" : "Restlet Test" }

标签: json netsuite poster


【解决方案1】:

PUT 请求不会在 URL 中查找数据。它将在请求本身的正文中查找 JSON。因此,您需要在请求正文中发送一个对象,而不是&name=Restlet Test,例如{ "name" : "Restlet Test" }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 2015-04-11
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多