日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java api 测试工具_Java 实现在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具

發布時間:2023/12/15 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java api 测试工具_Java 实现在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本站工具,在線HTTP接口測試 - HTTP GET/POST模擬請求測試工具后臺所有實現代碼。支持的請求協議有:Post、GetDelete、Put、Trace、Head、Options。特色是加了請求頭的輸入,方便一些跨域,和保持同一個session。

工具截圖:

下面上Java代碼:/**

* 模擬各種Http請求

* @param bo

* @return

*/

public static Map request(HttpRequestBo bo){

Map map = new HashMap();

double begin = System.currentTimeMillis();

String type = bo.getType();

String url = bo.getUrl();

HttpMethodBase method = null;

try {

//匹配請求

if("Post".equals(type)){

method = new PostMethod(url);

}else if("Get".equals(type)){

method = new GetMethod(url);

}else if("Delete".equals(type)){

method = new DeleteMethod(url);

}else if("Put".equals(type)){

method = new PutMethod(url);

}else if("Trace".equals(type)){

method = new TraceMethod(url);

}else if("Head".equals(type)){

method = new HeadMethod(url);

}else if("Options".equals(type)){

method = new OptionsMethod(url);

}

HttpClient client = new HttpClient();

//請求超時

client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 556000);

//讀取超時

client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 555000);

client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8");

client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

method.setRequestHeader("Connection","close");

method.setRequestHeader("Referer",

"https://www.sojson.com");

method.setRequestHeader("User-Agent",

"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0");

//設置參數

String[] keys = bo.getKeys(),values = bo.getValues();

if(StringUtils.isNotBlank(keys,values)){

NameValuePair[] params = new NameValuePair[keys.length];

for (int i = 0; i < keys.length; i++) {

params[i] = new NameValuePair(keys[i], values[i]);

}

method.setQueryString(params);

}

//設置請求頭 和上面方法一致,如果一樣,那么就覆蓋。

String[] headKeys = bo.getHeadKeys(),headValues = bo.getHeadValues();

for (int i = 0;StringUtils.isNotBlank(headKeys,headValues) && i < headKeys.length; i++) {

method.setRequestHeader(headKeys[i], headValues[i]);

}

int status = client.executeMethod(method);

map.put("status",status);

Header[] heads = method.getResponseHeaders();

//獲取請求的Host,用于IP解析

String host = method.getHostConfiguration().getHost();

StringBuffer sb = new StringBuffer("");

for (Header header : heads) {

sb.append(header.getName())

.append(" : ")

.append(header.getValue())

.append("\r\n");

}

//頭信息

map.put("head", sb.toString());

String result = method.getResponseBodyAsString();

map.put("result", result);

String ip = "未知";

try {

InetAddress iAddress=InetAddress.getByName(host);

ip = iAddress.getHostAddress();

map.put("host", ip);

} catch (Exception e) {

LoggerUtils.fmtError(HttpManager.class, e, "獲取IP地址失敗,域名:[%s]", host);

}

} catch (UnknownHostException e) {

//域名錯誤

map.put("message", "請輸入正確的網址");

LoggerUtils.fmtError(HttpManager.class, e, "網址異常[%s]", url);

} catch (SocketTimeoutException e) {

//超時

map.put("message", "請求地址超時");

LoggerUtils.fmtError(HttpManager.class, e, "請求地址超時[%s]", url);

} catch (Exception e) {

//其他異常

map.put("message", "請求出現未知異常,請重試!");

LoggerUtils.fmtError(HttpManager.class, e, "請求出現未知異常,請重試![%s]", url);

}

double end = System.currentTimeMillis();

map.put("time", (end - begin) / 1000);

return map;

}

LoggerUtils(Log輸出)、StringUtils(字符串操作類,你換做Apache即可)、工具類自行處理就可以了。

有什么問題加群解決。

如果本文對你有幫助,那么請你贊助我,讓我更有激情的寫下去,幫助更多的人。

¥我需要走的更遠,點擊我 贊助。

如果還有疑問,點擊我加群,為你提供最好的解答。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java api 测试工具_Java 实现在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。