如何使用 Pentaho 的 HTTP Post 步骤和 Spark Java

How to work with Pentaho's HTTP Post step and Spark Java

我正在尝试创建一个 Kettle 转换来填充我的 Spark Java (sparkjava.com) 服务器,部署在 heroku 上,而不是手动插入数据。服务器端处理路由“/insert”上的 Post 请求的代码如下:

post("/insert", (req, repl) -> {
        String json=new String(req.bodyAsBytes());
        /*Some processing...*/
        MyRecordList myRL=MyRecordList.fromJsonString(json);
        for (MyRecord mr : myRL.getRecords()) {
            Instance inst = mr.toWekaInstance(trainset);
            trainset.add(inst);
        }       
        return "ok";
    });

有了这个,我相信整个主体将成为 MyRecordList 对象的 JSON。

在 Pentaho 端有 HTTP Post 步骤,位置定义很简单。但是,我一直在研究如何将 JSON 字符串指定为 post 请求的整个主体并将其发送到服务器。根据 Heroku 日志,Pentaho 生成的请求甚至没有到达服务器。这是我放在那里的参数:

任何人都可以启发我,或者告诉我其他方式来填充服务器,遵循上述限制吗?

您将 json 内容作为 header 而不是在负载中发送,这是正确的做法。此外,我没有在您的屏幕截图中发现您已将请求的 content-type 设置为 json,可能它是以 html 形式发送的。我从未使用过 Pentaho 这个工具,但我建议您使用 this Chrome extension,我认为这是最简单的 Rest Api 测试器。