如何在Ubuntu终端中将URL返回的类Java类文件内容作为纯文本读取
问题解决方法
首先判断返回内容类型
你看到的返回内容是标准JSON格式,其中的javaClass只是JSON内的字段值,不是Java Class二进制文件,浏览器直接展示文本的特性也验证了这是文本类的JSON响应。
无法通过curl获取内容的核心原因
站点对异步XHR请求做了多层校验,除了正常cookie和路径参数token外,还校验请求头的完整性、来源页、UA标识,以及你提到的x-dtpc专属请求标识,默认curl请求缺失这些校验项,因此被服务端拦截无返回。
可行解决步骤
临时调试方案(最快可用)
直接从Chrome浏览器导出完整的可运行curl命令:
- 打开Chrome开发者工具,切换到「网络」面板,找到对应接口的请求记录
- 右键该记录,选择「复制」→「复制为cURL(bash)」
- 将复制的内容直接粘贴到Ubuntu 20.04终端运行,即可得到和浏览器一致的纯文本JSON返回
脚本固化方案
如果要写入.sh脚本长期调用,需要保证请求包含以下必填项:
- 完整URL用双引号包裹,避免URL中的
&被bash识别为后台执行符导致参数丢失 - 携带和浏览器一致的
User-Agent头,不要使用curl默认UA - 新增
X-Requested-With: XMLHttpRequest头,标识这是异步XHR请求 - 携带正确的
Referer头,值为该接口的上游来源页面地址 - 完整携带包含
x-dtpc值的有效cookie,若需要长期自动获取该值,可以搭配无头浏览器工具(如Puppeteer、Playwright)模拟用户访问页面生成最新的校验参数后再发起请求
示例请求模板
curl "https://www.yes.co.il/o/yes/servletlinearsched/getscheduale?startdate=20211025&p_auth=替换为你的最新有效token" \ -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \ -H "Accept: application/json, text/plain, */*" \ -H "X-Requested-With: XMLHttpRequest" \ -H "Referer: https://www.yes.co.il/替换为实际来源页路径" \ -H "Cookie: 替换为从浏览器复制的完整有效cookie,包含x-dtpc相关值"
内容的提问来源于stack exchange,提问作者Netuddki
相关产品推荐
相关产品推荐

