package com.jeeplus.modules.tools.utils;
|
|
|
import java.io.IOException;
|
import java.io.UnsupportedEncodingException;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
|
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpResponse;
|
import org.apache.http.NameValuePair;
|
import org.apache.http.ParseException;
|
import org.apache.http.client.ClientProtocolException;
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
import org.apache.http.client.methods.HttpGet;
|
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.client.methods.HttpUriRequest;
|
import org.apache.http.impl.client.DefaultHttpClient;
|
import org.apache.http.message.BasicNameValuePair;
|
import org.apache.http.protocol.HTTP;
|
import org.apache.http.util.EntityUtils;
|
import org.apache.log4j.Logger;
|
|
|
public class HttpPostTest {
|
private static Logger log = Logger.getLogger(HttpPostTest.class);
|
Map<String, String> params;
|
String url;
|
public static String post(String url, Map<String, String> params) {
|
DefaultHttpClient httpclient = new DefaultHttpClient();
|
String body = null;
|
|
log.info("create httppost:" + url);
|
HttpPost post = postForm(url, params);
|
|
body = invoke(httpclient, post);
|
|
httpclient.getConnectionManager().shutdown();
|
|
return body;
|
}
|
|
public HttpPostTest(String url, Map<String, String> params){
|
this.url = url;
|
this.params = params;
|
}
|
public static String get(String url) {
|
DefaultHttpClient httpclient = new DefaultHttpClient();
|
String body = null;
|
|
log.info("create httppost:" + url);
|
HttpGet get = new HttpGet(url);
|
body = invoke(httpclient, get);
|
|
httpclient.getConnectionManager().shutdown();
|
|
return body;
|
}
|
|
|
private static String invoke(DefaultHttpClient httpclient,
|
HttpUriRequest httpost) {
|
|
HttpResponse response = sendRequest(httpclient, httpost);
|
String body = paseResponse(response);
|
|
return body;
|
}
|
|
private static String paseResponse(HttpResponse response) {
|
log.info("get response from http server..");
|
HttpEntity entity = response.getEntity();
|
|
log.info("response status: " + response.getStatusLine());
|
String charset = EntityUtils.getContentCharSet(entity);
|
log.info(charset);
|
|
String body = null;
|
try {
|
body = EntityUtils.toString(entity);
|
log.info(body);
|
} catch (ParseException e) {
|
e.printStackTrace();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
|
return body;
|
}
|
|
private static HttpResponse sendRequest(DefaultHttpClient httpclient,
|
HttpUriRequest httpost) {
|
log.info("execute post...");
|
HttpResponse response = null;
|
|
try {
|
response = httpclient.execute(httpost);
|
} catch (ClientProtocolException e) {
|
e.printStackTrace();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
return response;
|
}
|
|
private static HttpPost postForm(String url, Map<String, String> params){
|
|
HttpPost httpost = new HttpPost(url);
|
List<NameValuePair> nvps = new ArrayList <NameValuePair>();
|
|
Set<String> keySet = params.keySet();
|
for(String key : keySet) {
|
nvps.add(new BasicNameValuePair(key, params.get(key)));
|
}
|
|
try {
|
log.info("set utf-8 form entity to httppost");
|
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
}
|
|
return httpost;
|
}
|
|
public static void main(String []agrs){
|
Map<String, String> params = new HashMap<String, String>();
|
params.put("name", "thinkgem");
|
params.put("password", "admin");
|
|
String xml = HttpPostTest.post("http://localhost:8080/HeartCare/a/login", params);
|
}
|
|
public String post(){
|
|
// Map<String, String> params = new HashMap<String, String>();
|
// params.put("name", "thinkgem");
|
// params.put("password", "admin");
|
|
String xml = HttpPostTest.post(url, params);
|
return xml;
|
}
|
}
|