package com.xiongyingqi.http;
import com.xiongyingqi.util.EntityHelper;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
/**
* Created by 瑛琪<a href="http://xiongyingqi.com">xiongyingqi.com</a> on 2014/5/1 0001.
*/
public class BuildNameValuePairsHelper {
public static String buildParameters(Collection<NameValuePair> nameValuePairs){
StringBuilder stringBuilder = new StringBuilder();
for (Iterator<NameValuePair> iterator = nameValuePairs.iterator(); iterator.hasNext(); ) {
NameValuePair nameValuePair = iterator.next();
String name = nameValuePair.getName();
String value = nameValuePair.getValue();
stringBuilder.append(name);
stringBuilder.append("=");
stringBuilder.append(value);
if (iterator.hasNext()) {
stringBuilder.append("&");
}
}
return stringBuilder.toString();
}
public static List<NameValuePair> build(Object object) {
if (object == null) {
return null;
}
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
Class<?> clazz = object.getClass();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
if (Modifier.isStatic(field.getModifiers())) {
continue;
}
field.setAccessible(true);
try {
Object value = field.get(object);
if (value != null) {
NameValuePair nameValuePair = new BasicNameValuePair(field.getName(), value.toString());
nameValuePairs.add(nameValuePair);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
EntityHelper.print(nameValuePairs);
return nameValuePairs;
}
public static String buildObjectToGet(Object object) {
if (object == null) {
return null;
}
StringBuilder stringBuilder = new StringBuilder();
List<NameValuePair> nameValuePairs = build(object);
NameValuePair nameValuePair = null;
for (Iterator<NameValuePair> iterator = nameValuePairs.iterator(); iterator.hasNext(); ) {
nameValuePair = iterator.next();
String name = nameValuePair.getName();
String value = nameValuePair.getValue();
stringBuilder.append(name);
stringBuilder.append("=");
stringBuilder.append(value);
if (iterator.hasNext()) {
stringBuilder.append("&");
}
}
EntityHelper.print(stringBuilder);
return stringBuilder.toString();
}
}