# 通过页面抓取后端请求

# 适合人群

技术开发

# 场景

我想知道某个前端页面的数据是通过几个后端请求返回回来的,想了解前端发送请求传了哪些参数?

V5产品的后端请求主要有.do类型的Controller请求、Ajax请求、Rest请求,Controller请求在本文同级目录有分析方法,本文只介绍Ajax请求和Rest请求。

# 一、Ajax请求解决方案

PC浏览器和移动H5页面均可使用此方案分析排查。

以下图任务详情为例:我想要知道任务标题、描述、时间、回复等数据是通过什么请求返回给页面的。

1708509927660.png

第一步:浏览器F12开启调试模式,切换到网络NetWork页签,同时先清理干净此前产生的网络请求:

1708510205633.png

第二步:重新打开一下任务详情卡片,此时会重新加载一遍任务数据,F12调试模式网络NetWork就能抓取到所有请求信息。

可以看到网络NetWork页签下面的请求信息刷新了,这就是本次打开产生的所有向服务器发送的请求:

1708510334896.png

# 第三步:分析Ajax请求

点击第一个ajax.do,这个是典型的V5 Ajax请求,选择负载Payload页签:

managerName对应后端服务器Ajax对象实例,managerMethod对应对象实例中的方法,arguments表示传递了什么参数:

1708510478765.png

继续保持在第一个ajax.do,切换到响应Response页签,这里表示从服务器向前端返回了什么数据信息:

1708510620944.png

问题:我已经知道这个Ajax请求了,那么如何找到后端源码呢?

通过负载Payload页签如下两个页签就能找到源码:

managerName: taskAjaxManager
managerMethod: validateViewTaskInfo

首先全局搜索*.xml文件中包含taskAjaxManager关键字的文件,如下可以发现源码就是com.seeyon.apps.taskmanage.manager.TaskAjaxManagerImpl.java

1708510992644.png

然后找到TaskAjaxManagerImpl.java源码,再搜索managerMethod中的“validateViewTaskInfo”方法,此方法就是对应Ajax源码:

1708511141030.png

扩展阅读:Ajax后端代码开发实现,参考本站>开发文档>CTP技术平台>AJAX组件

# 第四步:分析别的AJAX请求

点击第二个ajax.do,通过负载和响应就能初步清楚这个Ajax是获取任务核心数据的:

1708511425924.png

点击三个ajax.do,通过负载和响应就能初步清楚这个Ajax是获取任务回复数据的:

1708511538216.png

# 二、Rest请求解决方案

一般移动端H5页面都使用Rest请求来获取服务器数据,我们可以通过浏览器模式H5的页面效果。

移动端H5详细的调试文档可参考学习: https://open.seeyoncloud.com/cmpdev/

如下图所示:查看我的-已超期的列表数据,我们期望分析这个数据来自哪个Rest后端请求。

1708520368979.png

第一步:浏览器F12开启调试模式,切换到网络NetWork页签,同时先清理干净此前产生的网络请求,操作与前面Ajax示例一模一样。

第二步:点击页面上的已超期按钮,此时会重新加载一遍数据,F12调试模式网络NetWork就能抓取到所有请求信息。

1708520978245.png

# 第三步:分析Rest请求

调试模式下,在网络NetWork里面能看到两个请求,点击任意一个请求,通过“标头”页签能看到当前请求的URL是:/seeyon/rest/tasks/

1708521441850.png

通过“负载”页签,能看到请求传递的参数:

1708521563088.png

问题:我已经知道这个Rest请求了,那么如何找到后端源码呢?

这里的关键就是“标头”页签里面的请求URL:/seeyon/rest/tasks/,我们取rest后面的内容,全局搜索*Resource.java,来确认代码位置,如下图就知道TasksResource.java是源码文件:

1708521707715.png

为什么搜索*Resource.java就能知道是Rest后台文件:因为这是V5产品约定好的规范,详细Rest接口可参考本站>Seeyon API>Rest接口相关文档

以下是获取列表的具体的方法:

1708522070671.png

# 第四步:分析别的Rest请求

参考第三步操作,我们分析另一个请求的URL是seeyon/rest/tasks/count,代码位置同样位于TasksResource.java,而具体方法则是找Path注解=count的方法:

1708522393557.png

同样,通过负载能看到Rest请求参数,通过预览或响应能看到返回的结果:

1708522311427.png

# 三、其它情况

其它情况:如果调试窗口设置为XHR未找到任何请求,则可能不是AJAX、Rest,此时可以切换为ALL(全部)检查下是否是.do之类的请求。

1714303056239.png

创建人:het
修改人:het