海康威视新设备ISAPI人脸上传FDID参数报错咨询
海康威视ISAPI人脸上传FDID参数报错问题
问题场景
我采购了一台新的海康威视人脸识别设备,原有适配旧设备的人脸上传逻辑在新设备上失效,具体情况如下:
请求端点
http://<ip>/ISAPI/Intelligent/FDLib/FaceDataRecord?format=json
请求体
{"faceUR": "http://example.com/path/to/image.jpg", "faceLibType": "blackFD", "FDID": 1, "FPID": "A216627674", "featurePointType": "face" }
返回错误
{"statusCode": 6, "statusString": "Invalid Content", "subStatusCode": "MessageParametersLack", "errorCode": 1610612761, "errorMsg": "FDID" }
适配旧设备的PHP代码
// Upload Face public function setUserImageUrl($device, $employeeNo, $imageUrl) { $host = $device; $url = 'ISAPI/Intelligent/FDLib/FaceDataRecord?format=json'; $body = '{ "faceURL": "' . $imageUrl . '", "faceLibType": "blackFD", "FDID": 1, "FPID": "' . $employeeNo . '", "featurePointType":"face" }'; $response = $this->request('POST', $host, $url, $body); if (!$response) { log::info('img fail'); return false; } return json_decode($response); }
核心疑问
新设备的ISAPI接口中,FDID字段需要接收何种值?是特定数值要求还是数据类型有变化?
排查与解决建议
先修正字段拼写错误
请求体里的faceUR是拼写错误,正确字段应为faceURL(少了一个字母L),这个错误可能导致接口解析参数异常,连带触发FDID的报错提示。确认FDID的合法取值
新设备的FDID并非固定为1,需先查询设备已配置的人脸库ID:- 调用
GET http://<ip>/ISAPI/Intelligent/FDLib?format=json接口,获取设备上所有已存在的人脸库信息,从中提取对应的FDID值。 - 若需新增人脸库,先调用创建接口
POST http://<ip>/ISAPI/Intelligent/FDLib?format=json,请求体示例:
成功创建后,用返回的FDID进行人脸上传。{ "FDID": 2, "name": "自定义黑名单库", "type": "blackFD" }
- 调用
检查数据类型匹配
新设备可能要求FDID为字符串类型而非数字,尝试将请求体中的"FDID": 1改为"FDID": "1"再测试。查阅官方文档
海康新设备的ISAPI接口规范有更新,务必查阅对应型号的《ISAPI开发手册》,其中会明确FaceDataRecord接口的参数要求,包括FDID的取值范围、数据类型等细节。
内容的提问来源于stack exchange,提问作者Alex c
相关产品推荐
相关产品推荐

