增加HttpRequestBody
parent
25df6650d9
commit
395396c68e
@ -0,0 +1,69 @@
|
||||
package us.codecraft.webmagic.model;
|
||||
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.utils.URLEncodedUtils;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author code4crafter@gmail.com
|
||||
* Date: 17/4/8
|
||||
*/
|
||||
public class HttpRequestBody {
|
||||
|
||||
public static abstract class ContentType {
|
||||
|
||||
public static final String JSON = "application/json";
|
||||
|
||||
public static final String XML = "text/xml";
|
||||
|
||||
public static final String FORM = "application/x-www-form-urlencoded";
|
||||
|
||||
public static final String MULTIPART = "multipart/form-data";
|
||||
}
|
||||
|
||||
private final byte[] body;
|
||||
|
||||
private final String contentType;
|
||||
|
||||
private final String encoding;
|
||||
|
||||
public HttpRequestBody(byte[] body, String contentType, String encoding) {
|
||||
this.body = body;
|
||||
this.contentType = contentType;
|
||||
this.encoding = encoding;
|
||||
}
|
||||
|
||||
public String getContentType() {
|
||||
return contentType;
|
||||
}
|
||||
|
||||
public String getEncoding() {
|
||||
return encoding;
|
||||
}
|
||||
|
||||
public static HttpRequestBody json(String json, String encoding) throws UnsupportedEncodingException {
|
||||
return new HttpRequestBody(json.getBytes(encoding), ContentType.JSON, encoding);
|
||||
}
|
||||
|
||||
public static HttpRequestBody xml(String xml, String encoding) throws UnsupportedEncodingException {
|
||||
return new HttpRequestBody(xml.getBytes(encoding), ContentType.XML, encoding);
|
||||
}
|
||||
|
||||
public static HttpRequestBody custom(byte[] body, String contentType, String encoding) throws UnsupportedEncodingException {
|
||||
return new HttpRequestBody(body, contentType, encoding);
|
||||
}
|
||||
|
||||
public static HttpRequestBody form(Map<String,Object> params, String encoding) throws UnsupportedEncodingException {
|
||||
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(params.size());
|
||||
for (Map.Entry<String, Object> entry : params.entrySet()) {
|
||||
nameValuePairs.add(new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue())));
|
||||
}
|
||||
return new HttpRequestBody(URLEncodedUtils.format(nameValuePairs, encoding).getBytes(encoding), ContentType.FORM, encoding);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue