接口测试(二)httpClient 获取网页内容以及头信息

想用java做http的接口自动化,首先使用了java.net下的http方法,BUG 网上好多人说httpClient比较牛,好处一堆,那我就选了httpClient大笑

目前最简单的就是使用get或者post发送简单的请求获取连接的状态码 获取网页信息

代码如下:

package service.fyy.unit;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

import sun.misc.IOUtils;

public class HttpClientTest {

	public static void main(String[] args) throws Exception {
		HttpClientTest test = new HttpClientTest();
		test.sentGet("/");
	}

	public void sentGet(String url) throws Exception {
		CloseableHttpClient httpclient = HttpClients.createDefault();
		String result = "";
		try {
			HttpHost targetHost = new HttpHost("www.baidu.cn");
			// 创建get连接
			HttpGet httpget = new HttpGet(url);
			// 设置超时时间
			RequestConfig requestConfig = RequestConfig.custom()
					.setSocketTimeout(2000).setConnectTimeout(1000 * 10)
					.build();// 设置请求和传输超时时间
			httpget.setConfig(requestConfig);
			httpget.setHeader("Accept-Charset",
					"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.2");
			// 发送请求
			CloseableHttpResponse response = httpclient.execute(targetHost,
					httpget);
			System.out.println("URI:" + httpget.getURI());
			// 获取状态码
			System.out.println("状态码:"
					+ response.getStatusLine().getStatusCode());
			System.out.println("头部信息:"
					+ httpget.getFirstHeader("Accept-Charset").getValue());

			// BufferedReader reader= new BufferedReader(new
			// InputStreamReader(response.get));

			// 获取所有的请求头信息
			Header headers[] = response.getAllHeaders();
			int ii = 0;
			while (ii < headers.length) {
				System.out.println(headers[ii].getName() + ":"
						+ headers[ii].getValue());
				++ii;
			}
			// 抓取网页内容
			HttpEntity entity = response.getEntity();
			BufferedReader br = new BufferedReader(new InputStreamReader(
					entity.getContent(), "UTF-8"));
			String line;
			while ((line = br.readLine()) != null) {
				result += line;
			}

			br.close();
			System.out.println("result:" + result);

			// 终止请求
			httpget.abort();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			// 终止请求
			httpclient.close();
		}
<span style="white-space:pre">		</span>//获取URI
		// System.out.println("getURI:" + httpget.getURI());
<span style="white-space:pre">		</span>//设置HTTPversion
		// httpget.setProtocolVersion( new ProtocolVersion("HTTP", 1, 0));
<span style="white-space:pre">			</span>//得到HTTP version
		// System.out
		// .println("getProtocolVersion:" + httpget.getProtocolVersion());
		<span style="white-space:pre">	</span>//设置URI
		// httpget.setURI(new URI(url));

	}

}

没有整理格式,都是试验的各种实现方法,还得再接再厉啊


你可能感兴趣的:(接口测试(二)httpClient 获取网页内容以及头信息)