HTTP接⼝响应数据解析作为产品线的⽀撑⾓⾊QA/CI/CD等,http api解析是互联⽹公司中最常见的⼯作。
接⼝访问,返回的数据⼀般是json格式。
常见场景:对json格式数据的解析,取某个字段的值,做相应的判断。
任务:
与开发同学沟通,得知version信息可以通过访问api(/ultra/api/v1/buildinfo)获取到。
响应的数据为:
{
"name": "ultra",
"version": "3400.3.0",
"branch": "develop",
"commit": "a8ccaeb2b1c6094d598932219bb32cf9fe0380",
android系统耗电第一正常吗
"timestamp": "1523024279567",
"date": "2018-04-06_14-17-59",
"buildNumber": "3033",
"buildName": "ultra/ultra-ui/develop",
"buildType": "webpack",
"buildVersion": "3400.3.0-ci.3033+a8ccaeb2",
"ultraVersion": "2018-04-06_09-38-20",
"learnVersion": "3400.3.0-ci.2927+b960272",
"webServerVersion": "2.0.16",
"config": {
网站编程零基础入门"mode": "production",
"uiVersioningEnabled": true,
"staticAssetsDomain": "d2aqwpvls1cndj.cloudfront",
"learnVersionMapping": [
{
"from": "0.0.0.0",
"uiVersion": "2018-04-06_09-38-20"
}
]
}
}
SHELL脚本实现:
PYTHON脚本实现:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import json
import requests
python请求并解析json数据keystore文件def get_ultra_ui_version(base_url):
version_url = base_url + '/ultra/api/v1/buildinfo'
try:
res = (version_url)
print('respons status is %d' % res.status_code)
ultraVersion = json.)['ultraVersion']
print(type(ultraVersion))
except Exception as ex:
comment用法及搭配print('call api is failed and error message is :%s' % str(ex))
print(ultraVersion)
return ultraVersion
if len(sys.argv) >=2:
base_url = sys.argv[1]
else:
print('parameters are missing')
c语言计算分段函数的值it()
get_ultra_ui_version(base_url)
总结:
对⽐⼀下,
发现不需要登录状态下,且只需要获取简单信息,不需要后续处理,api的访问使⽤shell⽐python要简单的多。
如果涉及登录,可以借⽤python的requests库,可以实现较复杂的认证功能。且使⽤python库可以实现多请求的连续访问,多次请求之间有session的依赖关系。保持底层session不中断,可以减少建⽴tcp连接的次数,⽀持⾼并发。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论