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

使用Cylance Optics API执行设备锁定时遇400错误:lockdown_type必填

Cylance Optics API 隔离设备接口400错误解决:缺失lockdown_type参数

调用Cylance Optics API的隔离设备功能时,返回400状态码,错误响应内容:

b'{"status": "CLIENT_ERROR", "message": "'lockdown_type' is a required property"}'

我在Demisto平台开发,官方API文档未提及lockdown_type参数的传入方式,当前请求代码如下:

def lockdown_device_request(device_id, value, expires):
 # Create request
 access_token = get_authentication_token([SCOPE_OPTICS_LOCKDOWN])
 headers = {
     'Content-Type': 'application/json',
     'Authorization': 'Bearer ' + access_token
 }

 
 uri = f'{URI_DEVICECOMMAND}/{device_id}/lockdown?value={value}&expires={expires}'

 res = api_call(uri=uri, method='put', headers=headers)
 return res

解决方法

lockdown_type是必填的请求体参数,而非URL参数。由于接口指定了Content-Type: application/json,需要将该参数放在JSON请求体中传递,而非拼接在URL上。

常见的lockdown_type取值为full(完全隔离)或selective(选择性隔离),可根据业务需求选择。调整后的代码示例:

def lockdown_device_request(device_id, value, expires, lockdown_type="full"):
 # Create request
 access_token = get_authentication_token([SCOPE_OPTICS_LOCKDOWN])
 headers = {
     'Content-Type': 'application/json',
     'Authorization': 'Bearer ' + access_token
 }

 # 构造JSON请求体
 payload = {
     "lockdown_type": lockdown_type,
     "value": value,
     "expires": expires
 }

 uri = f'{URI_DEVICECOMMAND}/{device_id}/lockdown'

 # 若api_call支持直接传入json参数,使用如下方式
 res = api_call(uri=uri, method='put', headers=headers, json=payload)
 return res

如果api_call函数不支持json参数,需要手动序列化JSON:

import json

def lockdown_device_request(device_id, value, expires, lockdown_type="full"):
 # Create request
 access_token = get_authentication_token([SCOPE_OPTICS_LOCKDOWN])
 headers = {
     'Content-Type': 'application/json',
     'Authorization': 'Bearer ' + access_token
 }

 payload = {
     "lockdown_type": lockdown_type,
     "value": value,
     "expires": expires
 }

 uri = f'{URI_DEVICECOMMAND}/{device_id}/lockdown'

 res = api_call(uri=uri, method='put', headers=headers, data=json.dumps(payload))
 return res

额外排查思路

遇到文档未覆盖的参数问题时,可尝试:

  • 调用接口的OPTIONS方法,查看官方返回的参数规范
  • 抓包分析Cylance官方控制台发起的同类型请求,参考其参数结构
  • 联系Cylance技术支持确认最新接口要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 19:12:17