httpシミュレーションpost get delete
8091 ワード
1.ImHttpDelete
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import java.net.URI;
/**
* Created by wuhao on 15-7-4.
*/
public class ImHttpDelete extends HttpEntityEnclosingRequestBase {
public final static String METHOD_NAME = "DELETE";
public ImHttpDelete() {
super();
}
public ImHttpDelete(final URI uri) {
super();
setURI(uri);
}
/**
* @throws IllegalArgumentException if the uri is invalid.
*/
public ImHttpDelete(final String uri) {
super();
setURI(URI.create(uri));
}
@Override
public String getMethod() {
return METHOD_NAME;
}
}
2.HttpHelper
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import javax.servlet.http.HttpServletRequest;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
/**
* Http
*
* Created by wuhao on 15-7-4.
*/
public class HttpHelper {
/**
* HttpPost
*
* @param requestUrl
* @param requestHeaderMap
* @param requestBody
* @return
* @throws IOException
*/
public static HttpResponse httpPost(String requestUrl, Map<String, String> requestHeaderMap, String requestBody) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(requestUrl);
if (requestHeaderMap != null) {
for (String key : requestHeaderMap.keySet()) {
httpPost.setHeader(key, requestHeaderMap.get(key));
}
}
if (requestBody != null && requestBody.length() > 0) {
byte[] content = requestBody.getBytes("utf-8");
ByteArrayEntity entity = new ByteArrayEntity(content);
httpPost.setEntity(entity);
}
return httpClient.execute(httpPost);
}
/**
* HttpPut
*
*
* @param requestUrl
* @param requestHeaderMap
* @param requestBody
* @return
* @throws IOException
*/
public static HttpResponse httpPut(String requestUrl, Map<String, String> requestHeaderMap, String requestBody) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPut httpPut = new HttpPut(requestUrl);
if (requestHeaderMap != null) {
for (String key : requestHeaderMap.keySet()) {
httpPut.setHeader(key, requestHeaderMap.get(key));
}
}
if (requestBody != null && requestBody.length() > 0) {
byte[] content = requestBody.getBytes("utf-8");
ByteArrayEntity entity = new ByteArrayEntity(content);
httpPut.setEntity(entity);
}
return httpClient.execute(httpPut);
}
/**
* HttpGet
*
* @param requestUrl
* @param requestHeaderMap
* @return
* @throws IOException
*/
public static HttpResponse httpGet(String requestUrl, Map<String, String> requestHeaderMap) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(requestUrl);
if (requestHeaderMap != null) {
for (String key : requestHeaderMap.keySet()) {
httpGet.setHeader(key, requestHeaderMap.get(key));
}
}
return httpClient.execute(httpGet);
}
/**
* HttpDelete
*
* @param requestUrl
* @param requestHeaderMap
* @return
* @throws IOException
*/
public static HttpResponse httpDelete(String requestUrl, Map<String, String> requestHeaderMap, String requestBody) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
ImHttpDelete imHttpDelete = new ImHttpDelete(requestUrl);
if (requestHeaderMap != null) {
for (String key : requestHeaderMap.keySet()) {
imHttpDelete.setHeader(key, requestHeaderMap.get(key));
}
}
if (requestBody != null && requestBody.length() > 0) {
byte[] content = requestBody.getBytes("utf-8");
ByteArrayEntity entity = new ByteArrayEntity(content);
imHttpDelete.setEntity(entity);
}
return httpClient.execute(imHttpDelete);
}
/**
* request body
*
* @param request
* @return
* @throws IOException
*/
public static byte[] getRequestBody(HttpServletRequest request) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
int contentLength = request.getContentLength();
if (contentLength > 0) {
int sum = 0;
byte[] buffer = new byte[contentLength];
while (sum < contentLength) {
int count = request.getInputStream().read(buffer);
if (count > 0) {
outputStream.write(buffer, 0, count);
sum += count;
} else if (count < 0) {
outputStream.close();
throw new IOException(String.format("getRequestBody read return %s. contentLength:%s sum:%s ",
count, contentLength, sum));
}
}
}
outputStream.flush();
byte[] outputBuffer = outputStream.toByteArray();
outputStream.close();
return outputBuffer;
}
/**
* request body
*
* @param request
* @return
* @throws IOException
*/
public static String getRequestString(HttpServletRequest request, String body) {
StringBuilder sb = new StringBuilder();
sb.append(String.format("%s %s %s
", request.getMethod(), request.getRequestURI(), request.getProtocol()));
for (Enumeration<String> e = request.getHeaderNames(); e.hasMoreElements(); ) {
String headName = e.nextElement();
String headValue = request.getHeader(headName);
sb.append(String.format("%s: %s
", headName, headValue));
}
if (body != null && body.length() > 0) {
sb.append("
");
sb.append(body);
}
return sb.toString();
}
/**
* request body
*
* @param request
* @return
*/
public static String getRequestString(HttpServletRequest request) {
return getRequestString(request, null);
}
}