package org.xutils.sample.http; import android.text.TextUtils; import org.xutils.http.RequestParams; import org.xutils.http.annotation.HttpRequest; import org.xutils.http.app.ParamsBuilder; import org.xutils.x; import java.util.HashMap; import javax.net.ssl.SSLSocketFactory; /** * Created by wyouflf on 16/1/23. */ public class JsonDemoParamsBuilder implements ParamsBuilder { public static final String SEEVER_A = "a"; public static final String SEEVER_B = "b"; private static final HashMap<String, String> SERVER_MAP = new HashMap<String, String>(); private static final HashMap<String, String> DEBUG_SERVER_MAP = new HashMap<String, String>(); static { SERVER_MAP.put(SEEVER_A, "http://a.xxx.xxx"); SERVER_MAP.put(SEEVER_B, "http://b.xxx.xxx"); DEBUG_SERVER_MAP.put(SEEVER_A, "http://debug.a.xxx.xxx"); DEBUG_SERVER_MAP.put(SEEVER_B, "http://debug.b.xxx.xxx"); } @Override public String buildUri(RequestParams params, HttpRequest httpRequest) { String url = getHost(httpRequest.host()); url += "/" + httpRequest.path(); return url; } @Override public String buildCacheKey(RequestParams params, String[] cacheKeys) { return null; } @Override public SSLSocketFactory getSSLSocketFactory() { return null; } @Override public void buildParams(RequestParams params) { // 添加公共参数 params.addParameter("common_a", "xxxx"); params.addParameter("common_b", "xxxx"); // 将post请求的body参数以json形式提交 params.setAsJsonContent(true); // 或者query参数和body参数都json形式 /*String json = params.toJSONString(); params.clearParams();// 清空参数 if (params.getMethod() == HttpMethod.GET) { params.addQueryStringParameter("xxx", json); } else { params.setBodyContent(json); }*/ } @Override public void buildSign(RequestParams params, String[] signs) { params.addParameter("sign", "xxxx"); } private String getHost(String host) { String result = null; if (x.isDebug()) { result = DEBUG_SERVER_MAP.get(host); } else { result = SERVER_MAP.get(host); } return TextUtils.isEmpty(result) ? host : result; } }