package com.cheng.networkframestudy.okhttp.frame.builder;
import com.cheng.networkframestudy.okhttp.frame.request.GetRequest;
import com.cheng.networkframestudy.okhttp.frame.request.RequestCall;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 李旺成
* 2016年2月20日08:26:31
*/
public class GetBuilder extends OkHttpRequestBuilder {
@Override
public RequestCall build() {
if (mParamMap != null) {
mUrl = appendParams(mUrl, mParamMap);
}
return new GetRequest(mUrl, mTag, mParamMap, mHeaderMap).build();
}
private String appendParams(String url, Map<String, String> params) {
StringBuilder sb = new StringBuilder();
sb.append(url + "?");
if (params != null && !params.isEmpty()) {
for (String key : params.keySet()) {
sb.append(key).append("=").append(params.get(key)).append("&");
}
}
sb = sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
@Override
public GetBuilder url(String url) {
this.mUrl = url;
return this;
}
@Override
public GetBuilder tag(Object tag) {
this.mTag = tag;
return this;
}
@Override
public GetBuilder params(Map<String, String> params) {
this.mParamMap = params;
return this;
}
@Override
public GetBuilder addParams(String key, String val) {
if (this.mParamMap == null) {
mParamMap = new LinkedHashMap<>();
}
mParamMap.put(key, val);
return this;
}
@Override
public GetBuilder headers(Map<String, String> headers) {
this.mHeaderMap = headers;
return this;
}
@Override
public GetBuilder addHeader(String key, String val) {
if (this.mHeaderMap == null) {
mHeaderMap = new LinkedHashMap<>();
}
mHeaderMap.put(key, val);
return this;
}
}