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

寻求AXIS Entry Manager通过VAPIX API创建用户的技术支持

解决AXIS VAPIX API创建用户的请求格式错误问题

错误原因分析

  1. "No action specified"错误:你同时设置了CURLOPT_POSTFIELDS为数组,又指定Content-Type: application/json,curl会自动将数组编码为multipart/form-data格式,与你设置的请求头冲突,导致API无法识别action参数。
  2. 解析错误:同样因为请求体格式不匹配,API期望JSON数据,但收到的是multipart编码内容,解析User字段时出现边界错误。

修正后的PHP cURL代码

$url = 'http://myip/vapix/pacs/';
$username = 'root';
$password = '*****';

// 构造包含action和用户数据的完整JSON payload
$payload = [
    "action" => "axudb:SetUser",
    "User" => [
        "Name" => "Freeman, Gordon",
        "Description" => "",
        "Attribute" => [
            [
                "Name" => "FirstName",
                "Value" => "Gordon"
            ],
            [
                "Name" => "LastName",
                "Value" => "Freeman"
            ]
        ]
    ]
];

$jsonPayload = json_encode($payload);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_POST, true);
// 直接传递JSON字符串,而非数组
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonPayload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
// 可选:开启verbose模式查看详细请求/响应,方便排查
// curl_setopt($ch, CURLOPT_VERBOSE, true);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    echo "Response: \n$response";
}

curl_close($ch);

额外排查建议

  • 调整用户结构:如果仍有解析错误,检查Attribute字段格式是否符合API要求,部分版本可能要求用键值对对象而非数组,尝试修改为:
    "Attribute" => [
        "FirstName" => "Gordon",
        "LastName" => "Freeman"
    ]
    
  • 查看请求详情:开启CURLOPT_VERBOSE,确认实际发送的请求头和body是否正确,确保Content-Type为application/json,且JSON格式无语法错误。
  • 核对API版本:不同AXIS设备的VAPIX API版本可能存在差异,参考设备对应的官方文档,确认axudb:SetUser动作的参数规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:42:13