POST 实体到 Fiware-Orion Java

POST Entity to Fiware-Orion with Java

我正在尝试使用 fiware-orion 食谱中的示例在 Orion 中创建一个新实体 (http://telefonicaid.github.io/fiware-orion/api/v2/stable/cookbook/),通过执行此代码:

   @RequestMapping("/postest")
   public void viewTest() throws Exception{
      Client client = ClientBuilder.newClient();
      Entity payload = Entity.json("{'id':'Room13','type':'Room'}");

      Response response = client.target("http://my-url:1026/v2/entities")
      .request(MediaType.APPLICATION_JSON_TYPE)
      .post(payload);

      System.out.println("status: " + response.getStatus());
      System.out.println("headers: " + response.getHeaders());
      System.out.println("body:" + response.readEntity(String.class));

   }

但结果我得到这个错误:"error":"ParseError","description":"Errors found in incoming JSON buffer"

另一方面,GET 示例运行良好。是不是描述的不对,还是我哪里做错了?

Orion returns ParseError 每当它收到 JSON 负载有某种语法错误的请求时。因此,我建议您确保从您的程序发送的 JSON 是正确的。有几种方法可以做到这一点:

  1. 在您的代码中记录跟踪(您正在使用 Java,因此在正确的位置使用正确的参数 println 就可以了。
  2. 用一些能够显示接收到的请求的模拟替换 CB 端点,例如nc 命令或工具,例如 PutsReq.
  3. 使用 tcpdump 或 wireshark 等工具在线捕获它。

查看您的代码,我明白了 {'id':'Room13','type':'Room'}。也许问题是您使用的是 ' 而不是 "(检查 JSON specification)。