久久天天躁狠狠躁夜夜免费观看,精品国产粉嫩内射白浆内射双马尾,久久国产欧美日韩精品,久久久久久性高,激情欧美成人久久综合

Java 實(shí)現(xiàn)在線HTTP接口測(cè)試 - HTTP GET/POST模擬請(qǐng)求測(cè)試工具

JSON 2016-08-22 16:12:04 144434

本站工具,在線HTTP接口測(cè)試 - HTTP GET/POST模擬請(qǐng)求測(cè)試工具 后臺(tái)所有實(shí)現(xiàn)代碼。支持的請(qǐng)求協(xié)議有:Post、GetDeletePut、Trace、HeadOptions。特色是加了請(qǐng)求頭的輸入,方便一些跨域,和保持同一個(gè) session  。

工具截圖:

下面上 Java  代碼:

/**
	 * 模擬各種Http請(qǐng)求
	 * @param bo
	 * @return
	 */
	public static Map<String,Object> request(HttpRequestBo bo){
		
		Map<String,Object> map = new HashMap<String,Object>();
		double begin = System.currentTimeMillis();
		String type = bo.getType();
		String url  = bo.getUrl();
		HttpMethodBase method = null;
		try {
			//匹配請(qǐng)求
			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();
			//請(qǐng)求超時(shí)
			client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 556000); 
			//讀取超時(shí)
			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", 
						"http://suancuo.cn");
			method.setRequestHeader("User-Agent", 
						"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0");
	
			//設(shè)置參數(shù)
			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);
			}
			//設(shè)置請(qǐng)求頭 和上面方法一致,如果一樣,那么就覆蓋。
			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();
			//獲取請(qǐng)求的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) {
			//域名錯(cuò)誤
			map.put("message", "請(qǐng)輸入正確的網(wǎng)址");
			LoggerUtils.fmtError(HttpManager.class, e, "網(wǎng)址異常[%s]", url);
		} catch (SocketTimeoutException e) {
			//超時(shí)
			map.put("message", "請(qǐng)求地址超時(shí)");
			LoggerUtils.fmtError(HttpManager.class, e, "請(qǐng)求地址超時(shí)[%s]", url);
		} catch (Exception e) {
			//其他異常
			map.put("message", "請(qǐng)求出現(xiàn)未知異常,請(qǐng)重試!");
			LoggerUtils.fmtError(HttpManager.class, e, "請(qǐng)求出現(xiàn)未知異常,請(qǐng)重試![%s]", url);
		}
		double end = System.currentTimeMillis();
		map.put("time", (end - begin) / 1000);
		return map;
		
	}

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

有什么問題加群解決。

版權(quán)所屬:SO JSON在線解析

原文地址:http://suancuo.cn/blog/123.html

轉(zhuǎn)載時(shí)必須以鏈接形式注明原始出處及本聲明。

本文主題:

如果本文對(duì)你有幫助,那么請(qǐng)你贊助我,讓我更有激情的寫下去,幫助更多的人。

關(guān)于作者
一個(gè)低調(diào)而悶騷的男人。
相關(guān)文章
在線HTTP接口測(cè)試 - HTTP GET/POST模擬請(qǐng)求測(cè)試工具【更新說明】
HTTP模擬請(qǐng)求有幾種方法
HTTP模擬請(qǐng)求有幾種方法
Java模擬WSS websocket ssl請(qǐng)求Java WSS模擬請(qǐng)求代碼示例
Http Get 請(qǐng)求,Java 請(qǐng)求工具類封裝
Springboot HTTP請(qǐng)求,Springboot HTTP 請(qǐng)求 Demo。Get/Post
Springboot HTTP Get/Post 請(qǐng)求講解,Springboot幾行代碼完成Http請(qǐng)求
Mac 安裝 JMeter,JMeter 下載,JMeter Http 壓力測(cè)試【圖解】
JavaHTTP請(qǐng)求亂碼解決,GZIP 返回值亂碼解決
多說遷移,Java開發(fā)仿自主實(shí)現(xiàn)評(píng)論(一)
最新文章
計(jì)算機(jī)網(wǎng)絡(luò)的相關(guān)內(nèi)容 354
SOJSON V6 JavaScript 解密技巧與分析 5940
微信客服人工電話95068:如何快速解封微信賬號(hào)(2025最新指南) 11885
Java Http請(qǐng)求,HttpURLConnection HTTP請(qǐng)求丟失頭信息,Head信息丟失解決方案 5052
實(shí)用API合集分享:教你輕松獲取IP地址的API合集 8839
Linux I/O重定向 6705
Ruby 循環(huán) - while、for、until、break、redo 和 retry 3990
Node.js:全局對(duì)象 3604
如何使用終端檢查L(zhǎng)inux上的內(nèi)存使用情況 3779
JavaScript對(duì)象詳細(xì)剖析 3252
最熱文章
免費(fèi)天氣API,天氣JSON API,不限次數(shù)獲取十五天的天氣預(yù)報(bào) 745370
最新MyEclipse8.5注冊(cè)碼,有效期到2020年 (已經(jīng)更新) 703112
蘋果電腦Mac怎么恢復(fù)出廠系統(tǒng)?蘋果系統(tǒng)怎么重裝系統(tǒng)? 678428
Jackson 時(shí)間格式化,時(shí)間注解 @JsonFormat 用法、時(shí)差問題說明 561958
我為什么要選擇RabbitMQ ,RabbitMQ簡(jiǎn)介,各種MQ選型對(duì)比 511823
Elasticsearch教程(四) elasticsearch head 插件安裝和使用 483716
Jackson 美化輸出JSON,優(yōu)雅的輸出JSON數(shù)據(jù),格式化輸出JSON數(shù)據(jù)... ... 299543
Java 信任所有SSL證書,HTTPS請(qǐng)求拋錯(cuò),忽略證書請(qǐng)求完美解決 246654
Elasticsearch教程(一),全程直播(小白級(jí)別) 232088
227528
支付掃碼

所有贊助/開支都講公開明細(xì),用于網(wǎng)站維護(hù):贊助名單查看

查看我的收藏

正在加載... ...