package com.troy.xifan.http.request;
import com.troy.xifan.config.Constants;
import com.troy.xifan.http.Headers;
import java.util.HashMap;
import java.util.Map;
import okhttp3.RequestBody;
/**
* Created by chenlongfei on 2016/11/10.
*/
public class HttpRequestData {
private Headers headers;
private String url;
private String httpMethod;
private Map<String, RequestBody> bodyParams;
private HttpQueryParams queryParams;
public HttpQueryParams getQueryParams() {
return queryParams;
}
public void setQueryParams(HttpQueryParams queryParams) {
this.queryParams = queryParams;
}
public Map<String, String> getHeaders() {
return headers.getHeadersMap();
}
public void setHeaders(Headers headers) {
this.headers = headers;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getHttpMethod() {
return httpMethod;
}
public void setHttpMethod(String httpMethod) {
this.httpMethod = httpMethod;
}
public Map<String, RequestBody> getBodyParams() {
return bodyParams;
}
public void setBodyParams(Map<String, RequestBody> bodyParams) {
this.bodyParams = bodyParams;
}
public HttpRequestData(Headers headers, String url, String httpMethod,
Map<String, RequestBody> bodyParams, HttpQueryParams queryParams) {
this.headers = headers;
this.url = url;
this.httpMethod = httpMethod;
this.bodyParams = bodyParams;
this.queryParams = queryParams;
}
public static class Builder {
private Headers headers;
private String url;
private String httpMethod;
private Map<String, RequestBody> bodyParams;
private HttpQueryParams queryParams;
public Builder setHeaders(Headers headers) {
this.headers = headers;
return this;
}
public Builder setUrl(String url) {
this.url = url;
return this;
}
public Builder setHttpMethod(String httpMethod) {
this.httpMethod = httpMethod;
return this;
}
public Builder setBodyParam(String key, String value) {
if (bodyParams == null) {
bodyParams = new HashMap<>();
}
return this;
}
public HttpQueryParams getQueryParams() {
return queryParams;
}
public Builder setQueryParams(HttpQueryParams queryParams) {
this.queryParams = queryParams;
return this;
}
public HttpRequestData build() {
makeDefault();
return new HttpRequestData(headers, url, httpMethod, bodyParams, queryParams);
}
private void makeDefault() {
if (queryParams == null) {
queryParams = new HttpQueryParams();
}
if (headers == null) {
headers = new Headers.Builder().build();
}
if (httpMethod == null) {
httpMethod = Constants.HttpMethod.GET;
}
}
}
}