package com.demo.lib.common.okhttp.builder; import android.net.Uri; import com.demo.lib.common.okhttp.request.GetRequest; import com.demo.lib.common.okhttp.request.RequestCall; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; /** * Created by zhy on 15/12/14. */ public class GetBuilder extends OkHttpRequestBuilder implements HasParamsable { @Override public RequestCall build() { if (params != null) { url = appendParams(url, params); } return new GetRequest(url, tag, params, headers, id).build(); } protected String appendParams(String url, Map params) { if (url == null || params == null || params.isEmpty()) { return url; } Uri.Builder builder = Uri.parse(url).buildUpon(); Set keys = params.keySet(); Iterator iterator = keys.iterator(); while (iterator.hasNext()) { String key = iterator.next(); builder.appendQueryParameter(key, params.get(key)); } return builder.build().toString(); } @Override public GetBuilder params(Map params) { this.params = params; return this; } @Override public GetBuilder addParams(String key, String val) { if (this.params == null) { params = new LinkedHashMap<>(); } params.put(key, val); return this; } }