调用OctoPrint API发POST请求返回400,无法控制3D打印机移动X轴
你遇到的400错误核心是POST请求的参数传递格式不符合OctoPrint接口要求,具体问题和修正方案如下:
- 参数传递位置错误:OctoPrint的
/api/printer/command接口要求指令参数放在JSON请求体中,你现在使用的params参数会将参数拼接在URL后缀作为查询字符串,不符合接口要求,需要替换为json参数传递指令内容。 - 额外需要确认的前置条件:确保你的OctoPrint已经成功连接到3D打印机,且设备处于空闲可操作状态,没有正在运行的打印任务或者故障报错。
修正后的参考代码如下:
import requests headers = {"Authorization": "Bearer <token>"} def move_x_10(): api_link = "http://octopi.local/api/printer/command" data = {"command":"jog","x":10} return requests.post(api_link, headers=headers, json=data)
如果需要执行绝对位置移动,可以在data中添加"absolute": true参数,默认不传的话为相对当前位置移动。
内容的提问来源于stack exchange,提问作者Federico Perez Diduch
相关产品推荐
相关产品推荐

