如何拼接GET请求的参数
2019-09-24 10:16
453 查看
本人在做接口测试的过程中,之前写了一个用字符串替换的方法来处理get接口的参数拼接,后来优化了这个方法,兼容了中文字符提示非法字符的情况,使用了java自带的urlencode方法。包括第一种方法,之前传的是json。分享代码,供大家参考。
更新:
/** * 方法已重载,获取get对象 * <p>方法重载,主要区别参数,会自动进行urlencode操作</p> * * @param url 表示请求地址 * @param args 表示传入数据 * @return 返回get对象 */ public static HttpGet getHttpGet(String url, JSONObject args) { if (args == null || args.size() == 0) return getHttpGet(url); String uri = url + changeJsonToArguments(args); return getHttpGet(uri.replace(" ", "")); } /** * 方法已重载,获取get对象 * <p>方法重载,主要区别参数,会自动进行urlencode操作</p> * * @param url 表示请求地址 * @param args 表示传入数据 * @return 返回get对象 */ public static HttpGet getHttpGet(String url) { return new HttpGet(url); }
其中changjsontoarguments方法如下:
/** * 把json数据转化为参数,为get请求和post请求stringentity的时候使用 * * @param argument 请求参数,json数据类型,map类型,可转化 * @return 返回拼接参数后的地址 */ public static String changeJsonToArguments(JSONObject argument) { Set<String> keys = argument.keySet(); for (String key : keys) { String value = argument.getString(key); argument.put(key, urlEncoderText(value)); } String one = argument.toString(); String two = "?" + one.substring(1, one.length() - 1).replace(",", "&").replace(":", "=").replace("\"", ""); return two; }
--------------------------分割线------------------------------
/** * 把json数据转化为参数,为get请求和post请求stringentity的时候使用 * * @param argument * 请求参数,json数据类型,map类型,可转化 * @return 返回拼接参数后的地址 */ @SuppressWarnings("unused") private String changeJsonToArguments(JSONObject argument) { String one = argument.toString(); String two = "?" + one.substring(1, one.length() - 1).replace(",", "&").replace(":", "=").replace("\"", ""); return two; } private String changeJsonToArguments(Map<String, String> apiCase) { Set<String> keys = apiCase.keySet(); StringBuffer arg = new StringBuffer("?"); for (String key : keys) { arg.append((key) + "=" + urlEncoderText(apiCase.get(key)) + "&"); } return arg.deleteCharAt(arg.length() -1).toString();//此处为了兼容case内容为空 }
/** * 把json数据转化为参数,为get请求和post请求stringentity的时候使用 * * @param argument * 请求参数,json数据类型,map类型,可转化 * @return 返回拼接参数后的地址 */ @SuppressWarnings("unused") private String changeJsonToArguments(JSONObject argument) { String one = argument.toString(); String two = "?" + one.substring(1, one.length() - 1).replace(",", "&").replace(":", "=").replace("\"", ""); return two; } private String changeJsonToArguments(Map<String, String> apiCase) { Set<String> keys = apiCase.keySet(); StringBuffer arg = new StringBuffer("?"); for (String key : keys) { arg.append((key) + "=" + urlEncoderText(apiCase.get(key)) + "&"); } return arg.deleteCharAt(arg.length() -1).toString();//此处为了兼容case内容为空 }
/** * url进行转码,常用于网络请求 * * @param text * 需要加密的文本 * @return 返回加密后的文本 */ public String urlEncoderText(String text) { String result = ""; try { result = java.net.URLEncoder.encode(text, "utf-8"); } catch (UnsupportedEncodingException e) { output("数据格式错误!"); e.printStackTrace(); } return result; }
技术类文章精选
- java一行代码打印心形
- Linux性能监控软件netdata中文汉化版
- 接口测试代码覆盖率(jacoco)方案分享
- 性能测试框架
- 如何在Linux命令行界面愉快进行性能测试
- 图解HTTP脑图
- 如何测试概率型业务接口
- httpclient处理多用户同时在线
- 将swagger文档自动变成测试代码
- 五行代码构建静态博客
- httpclient如何处理302重定向
- 基于java的直线型接口测试框架初探
- Tcloud 云测平台--集大成者
非技术文章精选
- 为什么选择软件测试作为职业道路?
- 成为杰出Java开发人员的10个步骤
- 写给所有人的编程思维
- 自动化测试的障碍
- 自动化测试的问题所在
- 测试之《代码不朽》脑图
- 成为优秀自动化测试工程师的7个步骤
- 优秀软件开发人员的态度
- 如何正确执行功能API测试
- 未来10年软件测试的新趋势-上
- 未来10年软件测试的新趋势-上
- 自动化测试解决了什么问题
点击查看公众号地图
相关文章推荐
- 如何拼接GET请求的参数
- FLASK 中如何获取 GET/POST 请求的参数
- get请求如何在url中加入数组参数
- HttpClient4.X发送Get请求的url参数拼接
- java如何得到GET和POST请求URL和参数列表
- java如何得到GET和POST请求URL和参数列表
- WebApi系列~实际项目中如何使用HttpClient向web api发异步Get和Post请求并且参数于具体实体类型
- PHP使用http_build_query()构造URL字符串的方法(可将POST参数组转换拼接成GET请求链接)
- java如何得到GET和POST请求URL和参数列表
- Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法
- java如何得到GET和POST请求URL和参数列表(转载)
- java如何得到GET和POST请求URL和参数列表
- java如何得到GET和POST请求URL和参数列表
- OkHttp的基本使用-3(添加拦截器和GET请求的参数拼接)
- java如何得到GET和POST请求URL和参数列表
- 无论url请求什么.都可以拼接class类名.实例化.传递get参数-->给当前控制器-->传递给抽象父类-->都交给抽象父类.这个方法去处理call_user_func_array()
- PHP中json传递请求字符串网址函数http_build_query()与parse_str(),将POST参数组转换拼接成GET请求链接
- 拼接GET和POST请求参数的方法
- WebApi系列~实际项目中如何使用HttpClient向web api发异步Get和Post请求并且参数于具体实体类型
- 写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋