调用Landscape API未获预期响应,无法通过API验证Ubuntu Pro状态
调用Landscape API未获预期响应,无法通过API验证Ubuntu Pro状态
看起来你在调用Landscape的Login API时碰到了头疼的问题——不管带不带请求体,都只返回「Query API Service」,完全和文档里的预期结果对不上。先帮你梳理下可能的问题点,再说说后续验证Ubuntu Pro状态的正确步骤:
先修正命令里的明显语法错误
你贴出来的最后一条curl命令里,请求体的括号匹配出问题了:
curl -X POST "https://landscape-site.com/api/v2/login" -d '{"email": "email", "password": "pwd", "account": "standalone")'
这里结尾的)应该是},正确的命令应该是:
curl -X POST "https://landscape-site.com/api/v2/login" -d '{"email": "email", "password": "pwd", "account": "standalone"}'
这种低级语法错误会让curl没法正确解析请求体,很可能直接导致API返回非预期的奇怪响应。
排查「Query API Service」响应的原因
这个响应绝对不是Login API的正常返回,大概率是你的请求根本没正确到达Login服务端点,可能的诱因包括:
- 端点地址错误:确认你的Landscape实例的实际域名是否正确,比如是不是该用
https://your-landscape.domain.com而非landscape-site.com;同时检查/api/v2/login这个路径是否适配你的Landscape版本(部分旧版本的API路径可能不一样)。 - 服务配置问题:检查你的Landscape实例里,API相关服务是否正常运行;如果用了反向代理,也要确认代理规则有没有配错,导致请求被错误路由到了其他服务。
验证Ubuntu Pro状态的正确流程
等你搞定Login的问题后,就能按以下步骤验证机器的Ubuntu Pro状态:
- 调用Login API获取认证令牌,成功响应里会包含
token字段; - 后续调用Computers相关API时,在请求头里带上
Authorization: Bearer <你的令牌>; - 返回的计算机详情数据里,会有对应Ubuntu Pro订阅状态的字段(比如
subscription_status这类,具体字段名以你的Landscape版本返回结构为准)。
备注:内容来源于stack exchange,提问作者Jimmy
相关产品推荐
相关产品推荐

