You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用POST/GET调用车库门控制API?配置请求报错排查

车库门控制器API调用配置问题及解决方案

问题描述

我有一个本地部署的车库门控制器URL:https://MY-SERVER-URL/cc?dkey=abc&click=1,点击该URL即可触发车库门开关。现尝试通过HttpGarageDoors配件配置模拟此操作,配置代码如下:

初始配置

{
    "name": "Garage Door",
    "simulateTimeOpening": 10,
    "simulateTimeOpen": 60,
    "simulateTimeClosing": 10,
    "closeAfter": 60,
    "request": {
        "url": "MY-SERVER-URL?",
        "method": "POST",
        "type": "JSON",
        "headers": [
            {
                "name": "cc",
                "value": "?"
            }
        ],
        "params": [
            {
                "name": "dkey",
                "value": "abc"
            },
            {
                "name": "click",
                "value": "1"
            }
        ]
    },
    "accessory": "HttpGarageDoors"
}

修改dkey后的配置

{
    "name": "Garage Door",
    "simulateTimeOpening": 10,
    "simulateTimeOpen": 60,
    "simulateTimeClosing": 10,
    "closeAfter": 60,
    "request": {
        "url": "MY-SERVER-URL?",
        "method": "POST",
        "type": "JSON",
        "headers": [
            {
                "name": "cc",
                "value": "?"
            }
        ],
        "params": [
            {
                "name": "dkey",
                "value": "azsxdcfv"
            },
            {
                "name": "click",
                "value": "1"
            }
        ]
    },
    "accessory": "HttpGarageDoors"
}

配置后请求无法触发车库门开关,请问配置哪里出错了?另外,如何用POST/GET调用该API?

错误分析及修正

你的配置存在4个核心错误:

  • URL路径错误:原控制器路径是/cc,配置中URL写为MY-SERVER-URL?,缺少/cc路径,且末尾多余的?会导致参数拼接异常,正确URL应为https://MY-SERVER-URL/cc(如果是本地HTTP协议则替换为http)。
  • 请求方法不匹配:点击URL触发的是GET请求,你配置成了POST,控制器可能不支持POST方法,需改为GET。
  • 不必要的类型和Header配置:原请求是普通GET参数请求,无需设置type": "JSON",且cc是URL路径的一部分,不是HTTP Header,删除对应的headers配置。
  • 参数拼接冗余:GET请求的params会自动拼接到URL末尾,无需在URL中手动加?。

修正后的配置

{
    "name": "Garage Door",
    "simulateTimeOpening": 10,
    "simulateTimeOpen": 60,
    "simulateTimeClosing": 10,
    "closeAfter": 60,
    "request": {
        "url": "https://MY-SERVER-URL/cc",
        "method": "GET",
        "params": [
            {
                "name": "dkey",
                "value": "abc"
            },
            {
                "name": "click",
                "value": "1"
            }
        ]
    },
    "accessory": "HttpGarageDoors"
}

GET/POST调用方式

GET调用(推荐,与原URL行为一致)

  • 浏览器直接访问:https://MY-SERVER-URL/cc?dkey=abc&click=1
  • 命令行(curl):
curl "https://MY-SERVER-URL/cc?dkey=abc&click=1"

POST调用(仅当控制器支持POST时使用)

如果控制器支持接收URL参数的POST请求:

curl -X POST "https://MY-SERVER-URL/cc?dkey=abc&click=1"

如果控制器要求接收JSON格式的请求体:

curl -X POST -H "Content-Type: application/json" -d '{"dkey":"abc","click":"1"}' "https://MY-SERVER-URL/cc"

内容的提问来源于stack exchange,提问作者mnb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:40:38