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

如何解析Ajax请求返回的无文档API不可读响应格式

问题

我司一台生产制造设备搭载了无官方文档的API,设备同时提供Web管理界面,可通过内网地址 https://192.168.55.61/ 访问该界面。

进入设备日志查看板块时,打开浏览器控制台的Network(网络)面板,可看到对应接口的Ajax请求正在执行:
浏览器网络面板请求执行截图

将该请求的URL和Cookie信息填入Postman发起调用,可正常获得返回结果:
Postman调用返回结果截图

目前遇到的问题是返回内容格式无法识别、可读性极差。我不清楚是否需要添加额外的请求头(Header)来指定返回格式,也不确定该如何解析这类响应。设备供应商拒绝提供API文档,甚至坚称设备不存在API(该说法与实际情况明显不符)。

我想咨询是否可以通过浏览器控制台Network面板的相关信息,辅助我识别、解析该响应的格式?

补充信息

响应头(Response Headers)信息:
响应头信息截图


解答

所有需要的信息都可以从浏览器Network面板获取,不需要依赖厂商文档,按以下步骤操作即可:

  • 第一步先1:1复现浏览器的请求环境,不要只手动填URL和Cookie。在Network面板找到对应的日志接口,右键选择 Copy → Copy as cURL (bash),打开Postman通过「Import Raw text」功能把复制的cURL命令导入,这个操作会把浏览器请求携带的所有请求头、Cookie、参数完整复刻,正常情况下导入后发起请求就能拿到和浏览器端一致的可读响应。
  • 核对响应头的格式声明:点击接口切换到Headers标签,查看Response Headers区块的两个关键字段:
    • Content-Type:直接标注了响应的内容类型,比如application/json为JSON格式、text/plain为纯文本、application/octet-stream为二进制流
    • Content-Encoding:如果标注了gzip/br/deflate,说明内容经过压缩,未做解压处理就会显示为乱码
  • 如果确认拿到的是二进制流,通过响应开头的魔数判断格式:
    • 前2字节为0x1f 0x8b:gzip压缩内容,解压后再解析
    • 前2字节为0x50 0x4b(对应字符PK):ZIP压缩包
    • 首字节为0x7b(对应字符{)或0x5b(对应字符[):JSON格式,乱码是因为编码不匹配,依次切换UTF-8、GBK、GB2312编码即可正常显示
    • 内容紧凑、无大段明文字符:大概率是MessagePack或Protobuf格式,直接打开Web页面对应的前端JS文件,搜索该接口的请求路径,前端必然内置了对应的反序列化解析逻辑,直接提取相关代码即可完成响应解析。
  • 注意避坑:很多老旧工业设备的Web接口会校验X-Requested-With: XMLHttpRequest、Referer、User-Agent请求头,缺失任意一个都可能返回异常格式的内容,手动填写Postman配置很容易遗漏参数,优先用cURL导入的方式可以避开90%的这类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:45:34