1.HTTPUtils.java
package com.project.utils;
import java.io.IOException;
import java.net.URL;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpConnectionManager;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
public class HTTPUtils {
private final static Logger logger = Logger.getLogger(HTTPUtils.class);
private final static String OPERATER_NAME = "【HTTP操作】";
private final static int SUCCESS = 200;
private final static String UTF8 = "UTF-8";
private HttpClient client;
private static HTTPUtils instance = new HTTPUtils();
/**
* 私有化构造器
*/
private HTTPUtils() {
HttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params = httpConnectionManager.getParams();
params.setConnectionTimeout(5000);
params.setSoTimeout(20000);
params.setDefaultMaxConnectionsPerHost(1000);
params.setMaxTotalConnections(1000);
client = new HttpClient(httpConnectionManager);
client.getParams().setContentCharset(UTF8);
client.getParams().setHttpElementCharset(UTF8);
}
/**
* get请求
*/
public static String get(URL url) {
return instance.doGet(url);
}
private String doGet(URL url) {
long beginTime = System.currentTimeMillis();
String respStr = StringUtils.EMPTY;
try {
logger.info(OPERATER_NAME + "开始get通信,目标host:" + url);
HttpMethod method = new GetMethod(url.toString());
// 中文转码
method.getParams().setContentCharset(UTF8);
try {
client.executeMethod(method);
} catch (HttpException e) {
logger.error(new StringBuffer("发送HTTP GET给\r\n").append(url).append("\r\nHTTP异常\r\n"), e);
} catch (IOException e) {
logger.error(new StringBuffer("发送HTTP GET给\r\n").append(url).append("\r\nIO异常\r\n"), e);
}
if (method.getStatusCode() == SUCCESS) {
respStr = method.getResponseBodyAsString();
}
// 释放连接
method.releaseConnection();
logger.info(OPERATER_NAME + "通讯完成,返回码:" + method.getStatusCode());
logger.info(OPERATER_NAME + "返回内容:" + method.getResponseBodyAsString());
logger.info(OPERATER_NAME + "结束..返回结果:" + respStr);
} catch (Exception e) {
logger.info(OPERATER_NAME, e);
}
long endTime = System.currentTimeMillis();
logger.info(OPERATER_NAME + "共计耗时:" + (endTime - beginTime) + "ms");
return respStr;
}
/**
* POST请求
*/
public static String post(URL url, String content) {
return instance.doPost(url, content);
}
private String doPost(URL url, String content) {
long beginTime = System.currentTimeMillis();
String respStr = StringUtils.EMPTY;
try {
logger.info(OPERATER_NAME + "开始post通信,目标host:" + url.toString());
logger.info("通信内容:" + content);
PostMethod post = new PostMethod(url.toString());
RequestEntity requestEntity = new StringRequestEntity(content, "application/json", UTF8);
post.setRequestEntity(requestEntity);
// 设置格式
post.getParams().setContentCharset(UTF8);
client.executeMethod(post);
if (post.getStatusCode() == SUCCESS) {
respStr = post.getResponseBodyAsString();
}
logger.info(OPERATER_NAME + "通讯完成,返回码:" + post.getStatusCode());
logger.info(OPERATER_NAME + "返回内容:" + post.getResponseBodyAsString());
logger.info(OPERATER_NAME + "结束..返回结果:" + respStr);
post.releaseConnection();
} catch (Exception e) {
logger.error(OPERATER_NAME, e);
}
long endTime = System.currentTimeMillis();
logger.info(OPERATER_NAME + "共计耗时:" + (endTime - beginTime) + "ms");
return respStr;
}
}
2.测试类TestLZY.java
package com.project.test;
import java.net.MalformedURLException;
import java.net.URL;
import com.alibaba.fastjson.JSONObject;
import com.project.utils.HTTPUtils;
public class TestLZY {
public static void main(String[] args) throws MalformedURLException {
new TestLZY().gettoken();
new TestLZY().sendMsg();
}
public void gettoken() throws MalformedURLException{
String url = "http://192.168.0.1";
String ss = HTTPUtils.post(new URL(url), new JSONObject().toJSONString());
System.out.println(ss);
}
public void sendMsg() throws MalformedURLException{
String url = "http://192.168.0.1";
JSONObject jsonOO = new JSONObject();
JSONObject jsonO = new JSONObject();
jsonO.put( "name","张兴");
jsonOO.put("actionType", "addYZ");
jsonO.put("phone","13971449129");
jsonO.put("extends1","1");
jsonO.put("extends2","420683198108125111");
jsonO.put("xiaoquName","梅苑小区");
jsonO.put("xiaoquId","2");
jsonO.put("danyuan","1楼1单元");
jsonO.put("extends3","2");
jsonO.put("houseno","0202");
jsonOO.put("param", jsonO);
String ss = HTTPUtils.post(new URL(url), jsonO.toJSONString());
System.out.println(ss);
}
}