九、封装登录POST请求、登录后POST请求以及GET请求
时间:2019-08-21
本文章向大家介绍九、封装登录POST请求、登录后POST请求以及GET请求,主要包括九、封装登录POST请求、登录后POST请求以及GET请求使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、封装登录后POST请求以及GET请求
/** * 全局运行时环境参数管理器 */ public static Map<String, String> BASE_GLOBAL_MAP;
/** * 全局测试结果数据收集器 */ public static JSONArray BASE_URI_COLLECTOR;
/** * 全局请求处理器 */ public static UcRESTTemplate BASE_REST;
/** * 运行时日志文件路径 */ public static String RUNTIM_FILE_PATH = ""; public static SalesRequestRunTimeVo lendRequest; public static CollectionRequestRunTimeVo collectionRequest;
import com.ucredit.qa.utils.encrypt.SJS; import com.ucredit.qa.utils.map.TreeMap2MultiValueMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; import org.springframework.util.MultiValueMap; import org.testng.Reporter; import java.util.TreeMap; import static com.ucredit.qa.cases.assistant.BaseParameters.*; public class BaseRunner { final static Logger logger = LoggerFactory.getLogger(BaseParameters.class); /** * 根据产品服务请求规则处理请求前的UTI * @param map 原始请求参数 * @return MultiValueMap<String, Object> 处理后的请求报文体 */ public static TreeMap<String, Object> dealWithUri(TreeMap<String, Object> map){
//secret(根秘钥)已在Login中获取到参数,BASE_GLOBAL_MAP为全局参数收集器 if (BASE_GLOBAL_MAP.get("product").equalsIgnoreCase("当前系统名字") && null != BASE_GLOBAL_MAP.get("secret")){ try {
//SJS在上一篇文章中已说明 map.put("sign", new SJS().getSJSInfo(map, BASE_GLOBAL_MAP.get("secret"))); } catch (Exception e) { logger.error("当前执行产品【当前系统名字】请求加密过程处理失败"); e.printStackTrace(); } } return map; } /** * 发送 Rest Template 请求 * @param map 发送Rest请求前的UTI * @param uri 发送Rest请求的目的接口 * @return ResponseEntity<String>响应报文体 */ public static ResponseEntity<String> dealWithPost(TreeMap<String, Object> map, String uri) { TreeMap2MultiValueMap treeMap2MultiValueMap = new TreeMap2MultiValueMap(); MultiValueMap<String, Object> body = treeMap2MultiValueMap.getMultiValueMap(dealWithUri(map));
//BASE_URI_CLLOCTOR为全局测试结果收集器 BASE_URI_COLLECTOR.add(BASE_GLOBAL_MAP.get(uri)); Reporter.log("Request URL is : " + BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), true); Reporter.log("Post Request Body is : " + body.toSingleValueMap().toString(), true); final HttpEntity<?> request = new HttpEntity<>(body);
//server为域名,uri为接口名 ResponseEntity<String> responseEntity = BASE_REST.postEntity(BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), request); Reporter.log("Get Response : " + responseEntity.toString(), true); return responseEntity; } /** * 发送 Rest Template Get 请求 * @param map 发送Rest请求前的UTI * @param uri 发送Rest请求的目的接口 * @return ResponseEntity<String>响应报文体 */ public static ResponseEntity<String> dealGetWithHeader(TreeMap<String, Object> map, String uri) { MultiValueMap<String, Object> body = (new TreeMap2MultiValueMap()).getMultiValueMap(map); BASE_URI_COLLECTOR.add(BASE_GLOBAL_MAP.get(uri)); Reporter.log("Request URL is : " + BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), true); Reporter.log("Post Request Body is : " + body.toSingleValueMap().toString(), true); HttpHeaders headers = new HttpHeaders(); headers.set("Authorization", "Bearer " + collectionRequest.getToken()); final HttpEntity<?> request = new HttpEntity<>(body, headers); ResponseEntity<String> responseEntity = BASE_REST.getEntity(BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), request, map); Reporter.log("Get Response : " + responseEntity.toString(), true); return responseEntity; } /** * 发送 Rest Template Post 请求 * @param map 发送Rest请求前的UTI * @param uri 发送Rest请求的目的接口 * @return ResponseEntity<String>响应报文体 */ public static ResponseEntity<String> dealPostWithHeader(TreeMap<String, Object> map, String uri) { TreeMap2MultiValueMap treeMap2MultiValueMap = new TreeMap2MultiValueMap(); MultiValueMap<String, Object> body = treeMap2MultiValueMap.getMultiValueMap(map); BASE_URI_COLLECTOR.add(BASE_GLOBAL_MAP.get(uri)); Reporter.log("Request URL is : " + BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), true); Reporter.log("Post Request Body is : " + body.toSingleValueMap().toString(), true); HttpHeaders headers = new HttpHeaders(); headers.set("Authorization", "Bearer " + collectionRequest.getToken()); final HttpEntity<?> request = new HttpEntity<>(body, headers); ResponseEntity<String> responseEntity = BASE_REST.postEntity(BASE_GLOBAL_MAP.get("server") + BASE_GLOBAL_MAP.get(uri), request); Reporter.log("Get Response : " + responseEntity.toString(), true); return responseEntity; } }
原文地址:https://www.cnblogs.com/chushujin/p/11389331.html
- ASP.NET进程优化
- 多说 提速:js内页页脚加载、静态文件CDN
- 微信小程序的王者时代
- [程序设计语言]-[核心概念]-02:名字、作用域和约束(Bindings)
- NUMA架构
- 如何处理 Python 入门难以进步的现象?
- 编写前置和后置条件的连贯接口库:CuttingEdge.Conditions
- [程序设计语言]-[核心概念]-03:控制流
- 简单代码实现“网站维护中”“coming soon” 效果
- 使用Topshelf创建Windows 服务
- 自定义AuthorizeAttribute
- 系统进程管理工具Process Explorer
- jquery 操作DOM元素(1)
- 开源的读取Excel文件组件-ExcelDataReader
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux中禁止用户修改/重置密码
- 详解 MAC/Linux Vi配置环境变量及Java环境变量配置
- 扒开DMA映射的内裤
- 如何理解与识别Linux中的文件类型
- ubantu 16.4下Hadoop完全分布式搭建实战教程
- Linux定时删除日志的简单实现方法
- ubuntu如何安装中文输入法
- Ubuntu18.04安装Python虚拟环境
- linux下查看so或可执行程序的依赖库
- Linux中crontab输出重定向不生效问题的解决方法
- Ubuntu中安装MySQL更改默认密码的步骤详解
- linux下用csplit命令分割文件的方法示例
- Linux基础命令之mktemp详解
- CentOS7设置jar应用程序开机启动的方法
- linux jexus服务设置开机启动