模擬http請求測試controller層
阿新 • • 發佈:2019-01-22
1.HTTPUtils.java
2.測試類TestLZY.javapackage 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; } }
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); } }