在请求某些第三方接口的时候,遇到了 POST 请求传参方式为拼接 URL 参数的形式,所以整了个实体类转 URL 参数的方法处理。
代码实现
只转换当前类属性
/**
* 通过实体类获取 URL Params
*
* @param clazz 实体类
* @return URL Params
*/
public static String parseUrlParams(Object clazz) {
// 遍历属性类、属性值
Field[] fields = clazz.getClass().getDeclaredFields();
StringBuilder requestURL = new StringBuilder();
try {
boolean flag = true;
String property, value;
for (Field field : fields) {
// 允许访问私有变量
field.setAccessible(true);
// 过滤静态属性
if (Modifier.isStatic(field.getModifiers())) {
continue;
}
// 属性名
property = field.getName();
// 属性值
value = field.get(clazz).toString();
String params = property + "=" + value;
if (flag) {
requestURL.append("?").append(params);
flag = false;
} else {
requestURL.append("&").append(params);
}
}
} catch (Exception e) {
log.error("请求体转URL PARAM 异常", e);
}
return requestURL.toString();
}
参考:
- 支持父类:https://blog.csdn.net/Mr_wangjk/article/details/107666706
- 简单转换&转换父类:https://cxybb.com/article/weixin_44131142/85048307