1

我想要做的是使用 OctoPrint Rest API。但是,当我尝试执行需要命令的 POST 请求时,我一直遇到错误。这是文档中的一个示例。

POST /api/connection HTTP/1.1
Host: example.com
Content-Type: application/json
X-Api-Key: abcdef...

{
  "command": "connect",
  "port": "/dev/ttyACM0",
  "baudrate": 115200,
  "printerProfile": "my_printer_profile",
  "save": true,
  "autoconnect": true
}

我最困惑的是我在哪里包含命令或端口值。这是我目前正在做的事情。

var self = this;

    request({
        url: OCTOIP + "/api/connection",
        method: "POST",
        "content-type": "application/json",
        headers: {
            "X-Api-Key": KEY
        },
        body: JSON.stringify({"command": "connect"})

    }, function(error, response, body) {
        //var info = JSON.parse(body);
        if (error) {
            console.log(error);
            self.tell("Could Not Connect");
        }
        else {
            console.log(body);
            self.tell("Connected to printer.");
        }
    });

发生的事情是我不断收到此错误消息。

预期的内容类型 JSON

我尝试更改content-type为 just json,我尝试摆脱JSON.stringify并将其设置为{"command": "connect"}. 甚至完全放弃大括号。我尝试的另一件事是使用形式而不是正文。这些都没有奏效。我在这里做错了什么?

4

1 回答 1

1

修复了问题。事实证明它不起作用,因为我没有将标题放在content-type标题中。

于 2018-03-14T12:26:48.973 回答