HTTP接口测试代码,HTTP GET/POST模拟请求测试工具

引用包

<!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient -->
<dependency>
    <groupId>commons-httpclient</groupId>
    <artifactId>commons-httpclient</artifactId>
    <version>3.1</version>
</dependency>
package com.gfjh.core;

import java.net.InetAddress;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethodBase;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.HeadMethod;
import org.apache.commons.httpclient.methods.OptionsMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.methods.TraceMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.lang3.StringUtils;

public class c {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		String type = "Get";
		String url = "http://www.baidu.com";

		Map<String, Object> map = new HashMap<String, Object>();
		double begin = System.currentTimeMillis();
		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.setConnectionTimeout(30000);
			client.setTimeout(30000);
			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 = null, values = null;
			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 = null, headValues = null;
			if (headKeys.length > 0) {
				for (int i = 0; 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) {
				System.out.println("获取IP地址失败,域名:" + host);
			}
		} catch (UnknownHostException e) {
			// 域名错误
			map.put("message", "请输入正确的网址");
			System.out.println("网址异常[%s]" + url);
		} catch (SocketTimeoutException e) {
			// 超时
			map.put("message", "请求地址超时");
			System.out.println("请求地址超时[%s]" + url);
		} catch (Exception e) {
			// 其他异常
			map.put("message", "请求出现未知异常,请重试!");
			System.out.println("请求出现未知异常,请重试!" + url);
		}
		double end = System.currentTimeMillis();
		map.put("time", (end - begin) / 1000);

	}

}

猜你喜欢

转载自blog.csdn.net/terry711/article/details/105534645