fiddler简介
fiddler是强大的抓包工具,能够记录所有客户端和服务器的http和https请求,允许监视、设置断点,查看所有的‘进出’fiddler的数据(指cookie、html、js、css等文件)。
- fiddler是位于客户端和服务器端的HTTP代理。
- 目前最常用的HTTP抓包工具之一。
- 功能非常强大,是web调试的利器。
- fiddler功能介绍
- 监控浏览器所有的HTTP/HTTPS流量
- 查看、分析请求内容细节
- 伪造客户端请求和服务器响应。
- 测试网站的性能。
- 解密https的web会话。
- 全局、局部断点功能。
- 支持第三方插件
- 使用场景
- 接口调试、接口测试、线上环境调试、web性能分析。
- 判断前后端bug、开发环境hosts配置、mock、弱网断网测试。
工作原理
fiddler是以代理web服务器的形式工作的。
它通过接收客户端发送的请求,然后处理之后发送给服务器,等到服务器返回结果给fiddler后,再由fiddler把相应的数据返回给客户端。
它使用代理地址:127.0.0.1,默认端口是 8888.
注意:
当fiddler开启的时候,电脑以外重启或者是fiddler开启情况下关机再启动时,电脑启动后无法正常访问网络时,直接重启fiddler即可。
设置fiddler
鼠标选中tools > Options > HTTPS 和 Connections
- 选中 connections,默认监听端口为:8888。
- 勾选allow remote computers to connect,表示允许远程连接(别的机器把http/https请求发送到fiddler上来)。
设置抓取https请求
- HTTPS中选中 decrypt HTTPS traffi,弹框提示整数及安全提示,均点击同意即可。
配置完成后,进行重启fiddler,既可以正常抓包。
不同代理模式的区别
fiddler有不同的代理模式,分为以下两种。
1.流模式
流模式可以理解为一种实时通信的模式,有请求就有返回,也就是实时返回。
流模式更接近于浏览器本身的真实行为。
2.缓冲模式
缓冲模式是等所有请求都到了再一起返回,也就是等所有的数据都准备好了以后才返回个客户端。
而缓冲模式可以控制最后的服务器响应。
在实际使用中,我们可以根据具体的实际情况来选择代理模式。在界面上的操作很简单,就是一个按钮的按下、弹起的区别。
fiddler界面介绍
1.界面概述
2.主菜单介绍
2.1 flie 文件
File文件:
File--->Capture Traffic启用或停止捕获;
File--->New Viewer 新窗口;
File--->Load Archive 存档;
File--->Recent Archive 最近文档;
File--->Save保存;
Save--->All Session... 全部会话;
Save--->Selected Session 选择了的会话;
Save--->Request 请求;
Save--->Response 响应;
File--->Import Sessions导入会话;
File--->Export Sessions导出会话;
File--->Exit退出;
2.2 edit 编辑
Edit编辑:
Edit--->Copy拷贝;
Copy--->Session拷贝整个Session;
Copy--->Just Url将选中session的url拷贝到剪贴板;
Copy--->Headers Only拷贝头信息,包括请求和返回的头信息;
Copy--->Full Summary将session列表显示的信息及表头复制到剪贴板,通过tab分割。便于在Excel或其他编辑器中查看编辑;
Edit--->Remove移除;
Remove--->Selected Sessions选择会话;
Remove--->Unselected Sessions反选会话;
Remove--->All Sessions全部会话;
Edit--->Select All选择全部;
Edit--->Undelete恢复之前删除的会话;
Edit--->Paste as Sessions作为会话粘贴文件;
Edit--->Mark标记所选的会话;
Mark--->Strikeout失败;
Mark--->Red红色;
Mark--->Blue蓝色;
Mark--->Gold金色;
Mark--->Green绿色;
Mark--->Orange橙色;
Mark--->Purple紫色;
Mark--->Unmark未标记;
Edit--->Unlock for Editing调为可编辑
Edit--->Find Sessions查找会话
2.3 rules 规则
Rules规则:
Rules--->Hide Image Requests隐藏图片请求;
Rules--->Hide HTTPS CONNECTs隐藏HTTPS连接;
Rules--->Automatic Breakpoints断点控制;
Automatic Breakpoints--->Before Requests请求之前;
Automatic Breakpoints--->After Responses 响应之后;
Automatic Breakpoints--->Disabled禁用;
Automatic Breakpoints--->Ignore Images忽略图片;
Rules--->Customize Rules打开Fiddler ScriptEditor;
Rules--->Require Proxy Authentication密码代理验证;
Rules--->Apply GZIP Encoding采用GZIP编码;
Rules--->Remove All Encodings删除全部编码;
Rules--->Hide 304s隐藏304会话;
Rules--->Request Japanese Content要求日语内容;
Rules--->User-Agents支持把User-Agents请求头设置或替换成指定值;
Rules--->Performance提供影响web性能的简单选项;
Performance--->Simulate Modem speeds模拟调制解调器速度;
Performance--->Disable Caching禁止缓存
Performance--->Cache Always Fresh新的缓存
2.4 tools 工具
Tools工具:
Tools--->Options选项;
Tools--->WinINET Options WinINET选项;
Tools--->Clear WinINET Cache-清除WinINET缓存;
Tools--->Clear WinINET Cookies清除WinINET的Cookies;
Tools--->TextWizard文字编码解码;
Tools--->Compare Sessions比较会话;
Tools--->New Session Clipboard新会话写字板;
Tools--->HOSTS hosts配置;
Tools--->Reset Script重置脚本;
Tools--->Sandbox沙箱;
Tools--->View IE Cache查看IE缓存;
2.5 view 视图
View视图:
View--->Show Toolbar显示工具条
View--->Default Layout默认布局
View--->Stacked Layout堆叠布局
View--->Wide Layout全部布局
View--->Tabs制表符
Tabs--->preferences偏好
Tabs--->autosave自动保存
Tabs--->apitest API测试
View--->Statistics统计
View--->Inspectors嗅探
View--->Composer构造
View--->Minimize to Tray关闭自托盘
View--->Stay on Top前端显示
View--->Squish Session List会话列表格式
View--->AutoScroll Session List自动滚动会话链表
View--->Refresh刷新
2.6 help 帮助
Help帮助:
Help--->Help帮助
Help--->Fiddler Book说明
Help--->Discussions社区讨论
Help--->HTTP References HTTP的参考
Help--->Troubleshoot Filters-故障排除
Help--->Check For Updates检测更新
Help--->Send Feedback发送反馈
Help--->Abou关于
3.快捷菜单介绍
3.1
从左到右依次为
1. 给捕捉到的会话增加一个备注,不常用。选中会话,点下该按钮,就可以增加备注了。
2. Replay—>重新发送选中请求。回放按钮,比较常用。想重播会话,就可以点这个按钮,在底部对该请求做了一次回放,快捷键是R。可以多次重放。
3. Remove—>删除会话。清空监控面板的,可以过滤掉不同的请求,也可以清空全部的请求。
4. Go—>打断点时使用
5. Stream—>点击为流模式,不点击为缓冲模式。
– 缓冲模式:内容全部返回在发送到客户端;可以控制响应,修改响应数据,但是时序图有时候会出现异常;
– 流模式:收到内容立即发送给客户端;更接近真实浏览器的性能,速度快,时序图更准确(比如瀑布图),但是不能控制响应;
– 如果不需要AutoResponse和Fileters功能的话,一般使用缓冲模式;
6. Decode—>解码,默认勾选。帮助我们把http请求里面的东西解压出来,在查看的时候更方便一些。
3.2
从左到右依次为
1. Keep:All sessions—>保持全部会话
2. Any Process—>任何进程,精准定位。帮我们过滤不想看到的进程发出的请求,只保留我们要看到的进程的请求。方法是比如只想看到谷歌浏览器请求,把靶心拖动到谷歌浏览器放开即可。
3. Find—>查找
4. Save—>保存
3.3
从左到右依次为
1. 截屏
2. 秒表
3. Browse—>打开浏览器
4. Clear Cache—>清除缓存。可以快速清除缓存。
5. TextWizard—>编码解码小工具。可以快速编码和解码内容,很实用,点开后,选择解码方式就可以编解码了。省去了使用字符集转化的工具。
3.4
从左到右依次为
1. Tearoff—>打开一个新窗口。可以把右侧面板变成浮窗,想恢复关闭即可。
2. MSDN Search—>MSDN关键字查找。查的都是英文资料,中文环境很少用。
4.会话列表
HTTP状态: 红色表示错误,黄色表示认证
数据流类型: 灰色表示CONNECT
响应类型:紫色表示CSS,蓝色表示HTML,绿色表示script,灰色表示
5.会话右键
Decode Selected Sessions—>解码选择的session,一些Response body 会Encode。Decode后通常能解决乱码的问题; AtuoScroll Session List—>自动滚动 Session List。当不断有新的session进入list时候,关闭此功能,更容易定位选择某一个或多个session; Comment—>为一个或多个session添加注释; Compare—>对比:选中两条session右键,就会出现Compare选项。这个功能是通过第三方的软件来实现,可以下载WinDiff.Exe放在Fiddler的安装目录下,或是下载WinMerge安装,安装时,注意将软件添加到系统环境变量中; COMETPeek—>命令会保留正在执行的响应的“快照”,在响应完成前就可以查看部分内容。当web应用采用COMET模式以流式向客户端返回数据时,可以使用该命令。由于“流式”的含义就是永不结束,直有当服务端停止连接后,Fiddler才会返回响应; Abort Session—>终止当前正在执行的请求; Clone Response—>当Session列表中选中两个Session,并且其中一个Session在断点处中止,而另一个Session已经运行完成时才可用。该命令会把已经完成的Session的响应拷贝给暂停运行的Session; Unlock For Editing—>使Session的请求和响应都可以在Inspector中编辑; Inspect in New Windowns—>打开一个新的Session Inspector窗口; Properties—>打开Session属性窗口,显示当前的Session信息 | |
Copy拷贝; Copy—>Just Url将选中session的url拷贝到剪贴板; Copy—>This Column拷贝摘要,其中包括:请求方法,URL,响应状态码及状态信息。如果是重定向的HTTP/3xx,还会有该请求Response header中Location字段; Copy—>Terse Summary简要; Copy—>Headers Only拷贝头信息,包括请求和返回的头信息; Copy—>Session拷贝整个Session; | |
Save保存: Save—>Selected Sessions选择Sessions; Save—>Selected Sessions—> in ArchiveZIP将选择的sessions保存为SAZ格式压缩文件; Save—>Selected Sessions—>as Text将所选Session保存为txt格式文件; Save—>Selected Sessions—> as Text(Headers only)将所选sessions的请求和响应头一起保存为txt格式文件; | |
Remove删除: Remove—>Selected Sessions删除选中的sessions Remove—>Unselected Sessions删除未选中的sessions; Remove—>All Session删除所有sessions | |
Filter Now快捷过滤: 选中一个session右键会出现Filter Now选项,Fiddler会根据你选择的session快速生成隐藏/显示条件; 当我们选则隐藏某一个条件后,session list会隐藏符合条件的session; | |
Mark标记所选的会话: Mark—>Strikeout失败; Mark—>Red红色; Mark—>Blue蓝色; Mark—>Gold金色; Mark—>Green绿色; Mark—>Orange橙色; Mark—>Purple紫色; Mark—>Unmark未标记; | |
Replay重新请求此地址: Replay—>Reissue Requests 将选中的请求以原来的形式重新发送。如果按住Shift键,可以键入重复次数。或是选中sessions后按Shift+R; Replay—>Reissue Unconditionally无条件的发送选中请求,告诉服务器不要返回HTTP/304响应,快捷键Shift+U; Replay—>Reissue and Edit把选中的请求以原来的形式重新发送,在每个session中设置请求断点,在请求被发送到服务器前,使用Fiddler的Inspector修改请求; Replay—>Reissue and Verify把选中的请求以原来的形式重新发送,验证Response状态码和Response body; 重新发送的请求会被标记出背景色,绿色代表验证通过,红色表示验证失败,在comments中会提示失败原因和对比的session id; Replay—>Reissue Sequentially将选中的请求重新发送,等待前一个响应回来后,在发送下一个; Replay—>Reissue from Composer将选中的请求克隆到Fiddler右侧的Composer模块中(Composer后续博客讲解); Replay—>Revisit in IE将sessions的url在IE中打开。注意IE总是使用GET方法,而且用自己的header和cookie,不管session中提供了什么HTTP方法和请求头; | |
Select选择: Select—>Parent Request当前请求是从那个页面来的,相当于当前请求头中的Refere字段值。鼠标放在session上按P键可执行; Select—>Child Requests与1相反; Select—>Duplicate Requests选中Session列表中和当前的Session的URL和HTTP方法相同的所有Session; Select—>Matching Values值匹配选择,可以根据Session列表中的任意值匹配,鼠标放任意一列,点击Alt+左键,就会匹配出相同值的session; |
6.选项卡
Statidtics—>统计,对选中多个Sessions统计; Inspectors—>检查,请求头和响应体 AutoResponder—>重新定向 Composer—> 模拟进行发送 FiddlerScript—>脚本 Log—>日志 Fiters—>过滤 Timeline—>瀑布流时间图 |
7.请求查看器
Headers—>请求头信息显示为一个分级视图,包含了web客户端信息、Cookie、传输状态等; TextView—>显示POST请求的body部分为文本; SyntaxView—>显示脚本(安装SyntaxView插件) WebForms—>以直观的界面显示QueryString的值和Body的值,这里的Body应该是application/x-www-form-urlen-coded格式; HexView—>请求内容的16进制显示; Auth—>显示hearer中Proxy-Authorization和Authoriization信息; Cookies—>以直观的界面显示Header中Cookie的值; Raw—>将整个请求显示为纯文本; JSON—>通过JOSN格式显示; XML—>如果请求的body是XML格式,就是用分级的XML树来显示它; |
7.1 响应查看器
Transformer—>响应信息的压缩编码格式; Headers—>用分级视图显示响应的header; TextView—>使用文本显示相应的body; SyntaxView—>显示脚本(安装SyntaxView插件) ImageView—>响应内容如果是图片则显示图片,左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:自动缩放、缩放以适应显示区域大小、无缩放; HexView—>响应内容的16进制显示; WebView—>显示HTML格式,模拟网页显示; Auth—>显示hearer中Proxy-Authorization和Authoriization信息; Caching—>缓存; Cookies—>以直观的界面显示Header中Cookie的值; Raw—>将整个响应显示为纯文本; JSON—>通过JOSN格式显示; XML—>如果响应的body是XML格式,就是用分级的XML树来显示它; |
抓取手机内容
1.常用设置
设置步骤一:
- Tools—> Options—>HTTPS—>勾选Decrypt HTTPS traffic—>选择…from remote clients only(从远程客户端)
设置步骤二:
- Tools—> Options—>Connections—>设置Fiddler listens on port:8888—>勾选Allow remote computers to connect(允许远程设备连接)
设置步骤三:
①.查看fiddler所在计算机的IP(cmd—> ipconfig或者点击fiddler右上角Online)
②.手机上进行设置:同一个wifi下设置代理,服务器地址:计算机的IP(192.168.0.163),端口8888;
附加设置(常用设置后无法进行抓包)
方法一:
- 因为有些APP对安全上要求没有那么高时候,不需要下载证书,但是有的APP对安全要求比较高,就需要下载证书。
- 下载证书步骤:在手机浏览器(自带浏览器,本人在尝试中,UC出错)
- 输入网址:IP地址加端口号
- http://192.168.186.1:8888
安装的证书在手机的位置如下,可以进行删除、重新安装;
设置断点修改
1.全部中断 Request
设置中断:
- Rules—> Automatic Breakpoints—>Before Requests
取消中断:
- Rules—> Automatic Breakpoints—>Disabled
- 点击下发红色箭头的位置进行中断切换;
打开http://news.baidu.com/
—> 设置请求断点
—>清空fillder抓包数据
—>不输入任何关键字,点击 http://news.baidu.com/ 页面中“百度一下”
—> 在fiddler中设置 “value=测试”
—> 点击 “Run to Completion”
—> 点击 “Go”
—> 结果:“value=测试”;
Inspectors界面:
Break on Response:发送请求,在响应数据回到Fiddler时再次中断;
Run to Completion:单条运行修改后的请求;
2. 特定网站中断 Request
- 特定网站中断设置
- 快速命令行输入 ‘bpu 需要中断的网站’,只会中断 命令行中指定的网站。
- 特定网站中断取消
- 快速命令输入 ’bpu‘;
3.断点修改 Response
response全部中断
- 设置中断:
- Rules—> Automatic Breakpoints—>After Response
- 取消中断:
- Rules—> Automatic Breakpoints—>Disabled
点击下发红色箭头的位置进行中断切换;
例1_脚本替换:
打开http://news.baidu.com/
—>设置请求断点
—>清空fillder抓包数据
—>刷新http://news.baidu.com/页面
—>在Response中修改内容
—>点击“Run to Completion”
—>点击“Go”
—>结果:修改后的内容;
例2_状态码替换:
打开http://news.baidu.com/
—>设置请求断点
—>清空fillder抓包数据
—>刷新http://news.baidu.com/页面
—>在Response中选择状态码
—>选择502_Unreachable.dat
—>点击“Run to Completion”
—>点击“Go”
—>结果:状态码502内容;
3.特定网站中断 pesponse
- 特定网站中断设置
- 快速命令行输入“bpafter 网站地址”,则只会中断写入的网站地址;
- 特定网站取消中断
- 快速命令行输入“bpafter”;
4. response 查找或替换
5. 其他断点相关命令行
bps:特定http状态码时中断,比如:bps 200;
bpv/bpm:在特定请求menthod时中断,比如bpv GET或bpm POST;
g:等于 GO
重定向AutoResponder
1.文件及图片替换
目的:
- 允许从本地返回文件,代替服务器响应,而不用将文件发布到服务器【可用正式环境验证本地文件】
步骤一:
- 抓页面http://ir.baidu.com/phoenix.zhtml?c=188488&p=irol-irhome
—>选择session,右击
—>Save
—>Response
—> Response Body
步骤二:
- 打开另存html文件
—>修改内容
步骤三:
- AutoResponder
—>勾选Enable rules
—>选择session
—>点击“Add Rule”
步骤四:
- Rule Editor
—>第二个下拉框
—>选择Find a file…
—>选择修改后的html
—>save;
步骤五:
- 清空fillder抓包数据
—>刷新http://ir.baidu.com/phoenix.zhtml?c=188488&p=irol-irhome
—>页面
—>查看结果;
重定向状态码错误:
- Rule Editor
—>第二个下拉框
—>选择状态码
—>save;
2. 未匹配到请求时正常响应(unmatched requests passthrough)
- 如果不勾选 Unmatched requests passthrough 会出现地址错误。
访问其他网站会出错。点上之后即可访问其他网站。
3.设置延时(enable latency)
步骤:
勾选Enable Latency
—>出现Latency列-
–>选中某个文件
—>右击
—>选择Set Latency
—>设置延迟时间(3000毫秒)
—>save
—>重新刷新http://ir.baidu.com/phoenix.zhtml?c=188488&p=irol-irhome页面,设置的内容会发生3s的延迟;
4. URL匹配
EXACT开头:表示完全匹配
regex开头:表示用正则表达式来匹配
StringToMatch:字符串匹配
5. test是否匹配
步骤:
- 选中session
—>点击Test
—>查看是否匹配上;
fiddler过略
1. user fiters启用
2. Action
- Run Filterset now是否运行,
- Load Filterset加载,
- Save Filterset保存;
3. hosts过略
Zone:指定只显示内网(Intranet)或互联网(Internet)的内容;
Host:指定显示某个域名下的会话;
-No Host Filter:无HOST过滤;
Hide the following Hosts:只显示如下HOST;
Flag the following Hosts:加粗显示如下HOST;
输入多个HOST,多个之前用半角逗号或者回车分隔;
支持通配符:*,baidu.com;
选择Hosts
—>输入过滤条件单条件(ir.baidu.com)或多条件(ir.baidu.com,www.baidu.com或ir.baidu.com+Enter+www.baidu.com)或通配符(*.baidu.com)—>Changes not yet saved
—>选择Ations中Run Filterset now;
4. client process 过滤
客户端进程过滤规则
Show only traffic from:你可以指定只捕获哪个Windows进程中的请求;
Show only Internet Explorer traffic:只显示IE发出的请求;
Hide Windows RSS platform traffic:隐藏Windows RSS平台发出的请求;
5. Request Headers过滤
请求header过滤规则
经常使用:Show only if URL contains;
Flag requests with headers:标记带有特定header的请求;
Delete request headers:删除请求header;
Set request header设置请求的header;
6. breakpoints
断点设置规则:
Break request on HTTP POST:给所有POST请求设置断点;
Break request on HTTP GET with QueryString:给所有带参数的GET请求设置断点;
Break response on Content-Type:给特定的Content-Type设定断点;
7. response status code过滤
响应HTTP状态过滤规则:
Hide success(202,204,206):隐藏响应成功的session(202,204,206);
Hide Authentication demands(401):隐藏未经授权被拒绝的session(401);
Hide redirects(300,301,302,303,307):隐藏重定向的session(300,301,302,303,307);
Hide Not Modified(304):隐藏无变更的session(304);
8. response type and seze
响应类型和大小过略规则
Show all Content-Type:显示所有响应类型;
Hide smaller than ?KB:隐藏小于指定大小的session;
Hide larger than ?KB:隐藏大于指定大小的session;
Time HeatMap:获得即时数据(绿色阴影代表响应时间在50毫秒以内;超过50毫秒但在300毫秒之内的响应条目 没有颜色;响应时间在300至500毫秒之间的会涂以黄色;超过500毫秒的用红色底纹显示);
Block script files:阻止脚本文件,显示为404;
Block image files:阻止图片文件;
Block SWF files:阻止SWF文件;
Block CSS files:阻止CSS文件;
9. response headers
响应header过滤规则:
Flag response that set cookies:标记会设置cookie的响应;
Flag response with headers:标记带有特定header的响应;
Delete response headers:删除响应header;
Set response header:设置响应的header;
10. 会话列表:鼠标右击
fiddler sctipt
1.安装syntaxview插件
使用Fiddler Script前需要安装SyntaxView插件:
方式1:
- Inspectors tab
—>Get SyntaxView tab
—>Download and Install SytaxView Now…
方式2:
- http://getfiddler.com/FiddlerSyntaxSetup.exe
2. 进入 fiddlerscript页面
方式一:
- 直接点击fiddlerscript页签;
方式2:
- Rules—>Customize Rules—>Fiddler ScriptEditor;
3. fiddlerscript脚本进行自定义修改
修改session样式;
修改http请求和应答;
修改URL;
定制菜单:定制rule菜单的子菜单;
定制tool菜单的子菜单;
定制右键子菜单;
模拟慢速网络
步骤一:
- Customize Rule修改脚本:上传/下载1KB要delay多久
步骤二:
- Rules—>Performance—>启用Simulate Modem Speeds
步骤三:
- 重新刷新抓包网页 —> 结果很慢;
次要功能和第三方插件
- 替换HTTP Request Host
应用场景:进行开发时,线上去测试跳转调试
替换命令:urlreplace news.baidu.com www.baidu.com;
清除命令:urlreplace,需要同时清除浏览器缓存;
永久替代:
script脚本实现
配置host
应用场景:
- 线下和线上进行域名ip地址进行替换;
步骤:
- tools –> hosts —> host remapp
compose-requesr 发射器
1.HTTP统计图
2. quickexec命令行的使用
cls
select:select image
?.png
bpu、bpafter、bps、bpv、bpm
>size <size
=status:=状态码
@host:匹配域名
3. timeline瀑布图
选择多个会话,从条形图表中可以分别出哪些请求耗时最多;
不同颜色代表不同的元素类型的响应(浅绿色代表图片,深绿色是JavaScript,红色是CSS,其他为蓝色);
其他符号:请求前面的红色圆圈表示这个连接是新建的,绿色表示是复用的;
黑色竖线,表示的是浏览器收到服务器响应的第一个字节这一时刻;
向下的箭头表示重定向,302错误;
红色感叹号表示有错误发生,状态为4XX或5XX;
红色的X,说明服务端响应完这个请求之后,断开了连接;
闪电表示这是Fiddler的“AutoResponder”的响应;
软盘图标表示这个响应正文从本地获得,304错误;
4. 编码工具、查询工具、编码解码
编码
查询
编码解码
第三方插件
Syntax-Highlighring:代码高亮插件;
JavaScript格式化插件:JS格式化;
WinDiff:会话比较功能;
Stave插件:目录替换;项目配置管理;自定义颜色;上下行网速限制;
Willow:可以统计数据包;修改Host;请求重定向;编码转换;低网速模拟:慢速网络模拟可视化;断点调试;过滤HTTP请求;
官方文档:
http://www.telefik.com/fiddler
http://www.360doc.com/content/16/0128/15/30056680_531241446.shtml (关于接口)