com.xiongyingqi.common.utils.reflect.HttpReflectionUtils Maven / Gradle / Ivy
The newest version!
package com.xiongyingqi.common.utils.reflect;
import com.xiongyingqi.common.utils.string.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
/**
* @author xiongyingqi
* @since 20170922//
*/
public abstract class HttpReflectionUtils {
private static final Logger logger = LoggerFactory.getLogger(HttpReflectionUtils.class);
public static final String PAIRS_DELIMITER = "&";
public static final String KV_DELIMITER = "=";
public static Map parseHttpResponseToMap(String response) {
if (StringUtils.isEmpty(response)) {
return null;
}
HashMap params = new HashMap();
String[] pairs = StringUtils.delimitedListToStringArray(response, PAIRS_DELIMITER);
for (String pair : pairs) {
// String[] kv = StringUtils.delimitedListToStringArray(pair, KV_DELIMITER);
// if (kv.length != 2) {
// logger.warn("Pair: {} is illegal!", pair);
// continue;
// }
// String key = kv[0];
// String value = kv[1];
int i = pair.indexOf(KV_DELIMITER);
if (i < 0) {
logger.warn("Pair: {} is illegal!", pair);
continue;
}
String key = pair.substring(0, i);
String value = pair.substring(i + 1, pair.length());
if (logger.isDebugEnabled()) {
logger.debug("Parse pair to key: {} value: {}", key, value);
}
params.put(key, value);
}
return params;
}
public static T parseHttpResponseToInstance(String response, Class tClass) throws IllegalAccessException, InstantiationException {
if (StringUtils.isEmpty(response)) {
return null;
}
Map params = parseHttpResponseToMap(response);
T t = tClass.newInstance();
Field[] fields = ReflectionUtils.findFields(tClass, true);
for (Map.Entry entry : params.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
try {
ReflectionUtils.setFieldValueToInstance(key, value, t, fields);
} catch (IllegalAccessException e) {
logger.error("Error when set param: " + key + " value: " + value + " to: " + tClass + ". Error message: " + e.getMessage(), e);
}
}
return t;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy