package com.huxq17.example.http.request;
import android.text.TextUtils;
import com.andbase.tractor.utils.LogUtils;
import com.huxq17.example.http.body.FileBody;
import java.io.File;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
/**
* Created by huxq17 on 2015/11/26.
*/
public class RequestParams {
private String contentType = "application/x-www-form-urlencoded";
private String charSet = "utf-8";
private String stringParams;
private LinkedHashMap<String, Object> mParams;
private List<FileBody> mFiles;
public RequestParams() {
mParams = new LinkedHashMap<>();
mFiles = new ArrayList<>();
}
public boolean isEmpty() {
return TextUtils.isEmpty(stringParams) &&
(mParams == null || mParams != null && mParams.size() == 0) && (mFiles == null || mFiles != null && mFiles.size() == 0);
}
/**
* 提交普通参数
*
* @param name
* @param params
*/
public void addParams(String name, Object params) {
mParams.put(name, params);
}
public void setParams(LinkedHashMap<String, Object> params) {
mParams = params;
}
public String getStringParams() {
return stringParams;
}
public void setStringParams(String stringParams) {
this.stringParams = stringParams;
}
/**
* 提交文件
*
* @param file
*/
public void addFile(File file) {
if (file == null || !file.exists()) {
throw new RuntimeException("file==null||!file.exists()");
}
FileBody body = new FileBody(file.getName(), file.getAbsolutePath(), file);
mFiles.add(body);
}
/**
* 提交文件
*
* @param name
*/
public void addFile(String name, File file) {
if (file == null || !file.exists()) {
throw new RuntimeException("file==null||!file.exists()");
}
FileBody body = new FileBody(name, file.getAbsolutePath(), file);
mFiles.add(body);
}
/**
* 提交文件
*
* @param name
*/
public void addFile(String name, File file, String contentType) {
if (file == null || !file.exists()) {
throw new RuntimeException("file==null||!file.exists()");
}
FileBody body = new FileBody(name, file.getAbsolutePath(), file, contentType);
mFiles.add(body);
}
public void clear() {
mParams.clear();
mFiles.clear();
}
public LinkedHashMap<String, Object> getmParams() {
return mParams;
}
public List<FileBody> getFiles() {
return mFiles;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public void setCharSet(String charSet) {
this.charSet = charSet;
}
public String getContentType() {
return contentType;
}
public String getCharSet() {
return charSet;
}
@Override
public String toString() {
if (!TextUtils.isEmpty(stringParams)) {
return stringParams;
}
StringBuilder sb = new StringBuilder();
for (LinkedHashMap.Entry set :mParams.entrySet()) {
if (sb.length() > 0) {
sb.append("&");
}
sb.append(set.getKey()).append("=").append(set.getValue());
}
LogUtils.d("http params=" + sb.toString());
return sb.toString();
}
}