HTTP 接口响应数据解析

转自:https://blog.csdn.net/hubanbei2010/article/details/79878567

作为产品线的支撑角色QA/CI/CD等,http api解析是互联网公司中最常见的工作。

接口访问,返回的数据一般是json格式。

常见场景:对json格式数据的解析,取某个字段的值,做相应的判断。

任务:

假设刚部署出来的site的域名url为 https://qa-ultra-rds-96x.bbpd.io,现在检验version字段是否与预期相符。

与开发同学沟通,得知version信息可以通过访问api(/ultra/api/v1/buildinfo)获取到。

响应的数据为:

{
  "name": "ultra",
  "version": "3400.3.0",
  "branch": "develop",
  "commit": "a8ccaeb2b1c6094d598932219bb32cf9fe0380",
  "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.net",
    "learnVersionMapping": [
      {
        "from": "0.0.0.0",
        "uiVersion": "2018-04-06_09-38-20"
      }
    ]
  }
}

SHELL脚本实现:

curl -s --insecure https://qa-ultra-rds-96x.bbpd.io/ultra/api/v1/buildinfo|grep ‘ "ultraVersion"‘|awk -F ‘"‘ ‘{print $4}‘

PYTHON脚本实现:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import json
import requests

def get_ultra_ui_version(base_url):
version_url = base_url + ‘/ultra/api/v1/buildinfo‘

try:
res = requests.get(version_url)
print(‘respons status is %d‘ % res.status_code)
ultraVersion = json.loads(res.text)[‘ultraVersion‘]
print(type(ultraVersion))
except Exception as ex:
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‘)
sys.exit()

get_ultra_ui_version(base_url)

总结:

对比一下,
发现不需要登录状态下,且只需要获取简单信息,不需要后续处理,api的访问使用shell比python要简单的多。

如果涉及登录,可以借用python的requests库,可以实现较复杂的认证功能。且使用python库可以实现多请求的连续访问,多次请求之间有session的依赖关系。保持底层session不中断,可以减少建立tcp连接的次数,支持高并发。

原文地址:https://www.cnblogs.com/yadongliang/p/9665476.html

时间: 2024-08-30 13:18:33

HTTP 接口响应数据解析的相关文章

MOOC(7)- case依赖、读取json配置文件进行多个接口请求-模拟接口响应数据(18)

这里是把传入的请求数据作为响应值返回 # -*- coding: utf-8 -*- # @Time : 2020/2/15 9:47 # @File : do_mock_18.py # @Author: Hero Liu # 接口不可用,模拟返回响应数据 import mock def mock_test(mock_method, url, method, request_data, response_data, header=None): mock_method = mock.Mock(re

Jmeter—添加断言 判断接口响应数据是否符合预期

发出请求之后,通过添加断言可以判断响应数据是否是我们的预期结果. 1 在Jmeter中发送一个状态返回200的http请求(参数故意输入错误).结果肯定是不是返回200啦. 但结果树中http请求的图标显示'绿色'表示请求成功了,因为服务器确实对请求返回了响应数据. 我们来添加断言验证响应数据符合预期.只有返回200成功,http请求才显示绿色图标. 2  在http请求上点击右键>添加>断言>响应断言 3 响应断言编辑页面,可选择断言应用范围和要测试的响应字段,匹配规则等. 都选择默认

以麦当劳,肯德基优惠券接口数据为例进行的数据解析方法,简单易懂

以麦当劳,肯德基优惠券接口数据为例进行的数据解析方法,简单易懂,这是我个人觉得是一种比较简单易懂的json数据解析方法: 看下其中一个类的代码 package com.example.text_json_deno_model; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject;

喜马拉雅第三方客户端开发(接口和接口数据解析)。

前言:最近闲来无事,看了网上豆瓣的第三方客户端,手有点痒,决定自己动手开发一个客户端,比较了荔枝和喜马拉雅,决定开发喜马拉雅的第三方客户端. 客户端使用了WPF开发. 1.抓取接口: 首先得解决接口数据的问题,使用了手机端的喜马拉雅,抓包看了接口.这里推荐使用fiddler2这个工具.从图中可以看到接口信息,包括接口地址和参数的一些数据. 2.通过http获取接口数据和转换接口数据格式. 这里提供一个HttpWebRequestOpt类来获取接口数据. using System; using S

php接口开发时,数据解析失败问题,字符转义,编码问题

php接口开发时,数据解析失败问题,字符转义,编码问题 情景: A平台--->向接口请求数据---->接口向B平台请求数据---->B平台返回数据给接口---->接口返回数据给A平台. 数据经过多遍传递,出现编码.特殊字符转义的的问题. 遇到问题: (1)第一个问题:A发过来的数据,参数值是json字符串,接收到之后无法解析,查看数据后发现json数据中的双引号被转成了" 也就是预定义的字符被转成了HTML实体,需要使用 htmlspecialchars_decode()

Android JSON数据解析(GSON方式)

要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Java对象,或是将一个Java对象转换为相应的JSON数据. 1.GSON的两个重要方法 在GSON的API中,提供了两个重要的方法:toJson()和fromJson()方法.其中,toJson()方法用来实现将Java对象转换为相应的JSON数据,fromJson()方法则用来实现将JSON数据转换

iOS之网络数据下载和Json数据解析

iOS之网络数据下载和Json数据解析 简介 在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据,以及如何显示数据和图片的异步下载显示 涉及到的知识点: 1.NSURLConnection异步下载封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 (1)什么是网络应用? 一般情况下, iPhone的计算机, 照相机不需要从网络上下载数据也能运行, 所以这

JSON数据解析(GSON方式) (转)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 在上一篇博文<Android学习笔记44:JSON数据解析>中,我们使用基本的JSON API完成了在服务器端创建JSON数据,以及在Android客户端对JSON数据进行解析. 其实,要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使

JSON数据解析(转)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android开发中,如何在服务器端创建JSON数据,以及如何在Android客户端对JSON数据进行解析. 1.JSON数据结构 在JSON中有两种数据结构:对象和数组. 1.1对象 在JSON中,一个对象以“{”(左括号)开始,“}”(右括号)结束.每个“名称”后跟一个“:”(冒号),冒号后是该名称的值,多个