如何通过 OctoPrint Rest API 传递命令?
How do a pass commands through the OctoPrint Rest API?
我想做的是使用 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.");
}
});
我不断收到此错误消息。
Expected content-type JSON
我试过将 content-type
改为 json
,我试过去掉 JSON.stringify
并将其设为 {"command": "connect"}
。或者甚至完全放弃大括号。我尝试的另一件事是使用表单而不是 body。 None 其中有效。我在这里做错了什么?
已解决问题。事实证明它不起作用,因为我没有将 content-type
放在 header.
中
我想做的是使用 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.");
}
});
我不断收到此错误消息。
Expected content-type JSON
我试过将 content-type
改为 json
,我试过去掉 JSON.stringify
并将其设为 {"command": "connect"}
。或者甚至完全放弃大括号。我尝试的另一件事是使用表单而不是 body。 None 其中有效。我在这里做错了什么?
已解决问题。事实证明它不起作用,因为我没有将 content-type
放在 header.