java url 拼接参数_如何拼接GET请求的参数

本人在做接口测试的过程中,之前写了一个用字符串替换的方法来处理get接口的参数拼接,后来优化了这个方法,兼容了中文字符提示非法字符的情况,使用了java自带的urlencode方法。包括第一种方法,之前传的是json。分享代码,供大家参考。

更新:

/**

* 方法已重载,获取get对象

*

方法重载,主要区别参数,会自动进行urlencode操作

*

* @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对象

*

方法重载,主要区别参数,会自动进行urlencode操作

*

* @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 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 apiCase) {

Set 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 apiCase) {

Set 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;

}

技术类文章精选

非技术文章精选

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值