版权声明:此文章如需转载请联系听云College团队成员阮小乙,邮箱:ruanqy#tingyun.com
Windows curl 工具安装包: http://curl.haxx.se/download/
常用的参数说明:
curl <option> target_host_uri -i 显示header -k 忽略ssl验证 -o fileName 保存响应内容到指定的文件 -O 保存响应内容到文件,自动命名 -H "Key:Value" 设置请求的header -F file=@target.txt 上传指定的文件 -d "param=testCode" 通过表单提交参数
接口URI:
https://mobile-symbol-upload.tingyun.com/symbol/authkey/<auth_key>/appkey/<app_key>
参数解释:
<auth_key> : 在听云报表右上角有一个更新授权码的菜单,在登录用户名的子菜单下。
<app_key>: 在听云报表app设置页面即可获取
请求数据:
需要上传的符号表文件。
最后拼装请求url如下:
注:红色文字已经隐藏部分数据
响应格式:
格式一:
{ "status" : "SUCCESS", "message" : "fd4c2e19-***-fcb8ed43b1d4" }
权限校验正常,符号表校验正常,上传成功。其中message字段表示服务器解析出来的BUILD_ID,如果包含多个则以英文逗号(,)分隔。
格式二:
{ "status" : "ERROR", "message":"authentication failed. [authkey: fw3***gw, appkey: ff8fda9***270b737]" }
出现此种问题,多数是<auth_key>或者<app_key>参数错误,更正参数即可。
格式三:
{ "status" : "ERROR", "message" : "mobile app ID is null. [authkey: fw3***gw, appkey: ff8fda9***270b737]" }
出现此种错误,请校验<app_key>参数是否正确。
格式四:
{ "status" : "ERROR", "message" : " BUILD_ID is null. [authkey: fw3***gw, appkey: ff8fda9***270b737]" }
<BUILD_ID>是校验用户上传的文件是否有效的条件之一。出现此种错误,请校验上传的符号表文件是否包含<BUILD_ID>。
接口URI以及请求参数详见听云API接口文档。
由于api接口文档使用的是header参数鉴权,所以通过curl请求接口的时候需要配合“-H、-d”参数使用。
请求形式:
curl -i -k -H "X-Auth-Key: <auth_key>" -d "timePeriod=43200" https://api.tingyun.com/mobile/latest/accounts/<account_id>/mobileApplications/<mobile_app_id>/charts/mobile-application-performance.json
参数说明:
<auth_key>:同上节描述解释。
<account_id>:在获取<auth_key>参数的同时即可获取到此参数的值。
<mobile_app_id>:首先此处的ID不是上节中的app_key。想要查看指定应用的ID需要通过听云APP报表查看对应APP的应用分析菜单,此时浏览器地址栏中的ID就是。
响应数据:
{ "chart": { ***报表生成时间*** "timestamp": "2016-03-17 09:37", ***报表时间范围:起始时间*** "beginTime": "2016-02-16 00:00", ***报表时间范围:结束时间*** "endTime": "2016-03-17 00:00", "timeGranularity": " ", "dataset": [ { "head": { "categories": [ { "id": "7154", "name": "TY_DEMO_APP" } ], "serieses": [ { "id": "1", "name": "响应时间" } ], "rows": [ { "id": "1455552000000", "name": "2016-02-16 00:00" }, { "id": "1455638400000", "name": "2016-02-17 00:00" }, { "id": "1455724800000", "name": "2016-02-18 00:00" }, ***此处省略若干数据*** ], "cols": [ { "id": "nb.message.response_time_total", "name": "响应时间" }, { "id": "nb.message.first_packet_time_total", "name": "首包时间" }, { "id": "nb.message.count", "name": "访问量" } ] }, "data": [ [ [ [ 1.667, 0.341, 5152 ], [ 0.993, 0.212, 4125 ], [ 1.083, 0.207, 4059 ], ***此处省略若干数据*** ] ] ] } ] } }
注:以上数据结构中,dataset可能包含1个或多个,通常只有一个dataset。
格式解析:
category:类别。通常只有一个category。例如对于应用相关报表,category是指所选择应用,dataset头定义中category.id和category.name则分别对应所选择应用的ID和名称。
series: 数据序列。例如对于大多数曲线图,每一条曲线即对应一个序列。
row:行。对于时间趋势图,row通常对应时间维度。
col:列。对应多列数据。
下面的表格比较直观的表示了该数据结构:
注:此部分数据摘抄自API接口文档。
想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。