一、httpclient 模拟get请求,并获取cookie信息
public class MyCookiesForGet { private String url; //用来读取.properties的配置文件 private ResourceBundle bundle; private CookieStore store; @BeforeTest public void beforeTest() { //读取加载.properties的配置文件 bundle = ResourceBundle.getBundle("application",Locale.CHINA); url = bundle.getString("test.url"); } @Test public void testGetCookies() throws IOException { String result; //从配置文件中 拼接测试的url String uri = bundle.getString("getCookies.uri"); String testUrl = this.url + uri; //HttpGet 相当于在浏览器地址栏输入一个地址 HttpGet get = new HttpGet(testUrl); //DefaultHttpClient 相当于一个浏览器,先new一个浏览器 DefaultHttpClient client = new DefaultHttpClient(); //client.execute(get) 相当于用浏览器打开网页了,获得一个response结果 HttpResponse response = client.execute(get); //response.getEntity() 打印请求的实体内容 返回json格式 //EntityUtils.toString() 将json格式实体内容转换成字符串String result = EntityUtils.toString(response.getEntity(),"utf-8"); System.out.println(result); //获取cookies信息 this.store = client.getCookieStore(); List<Cookie> cookieList = this.store.getCookies(); for (Cookie cookie : cookieList) { String name = cookie.getName(); String value = cookie.getValue(); System.out.println("cookie name = "+name+",cookie value = "+value); } } }
二、httpclient 模拟携带cookie信息进行的get请求
public class MyCookiesForGet { private String url; //用来读取.properties的配置文件 private ResourceBundle bundle; private CookieStore store; @BeforeTest public void beforeTest() { //读取加载.properties的配置文件 bundle = ResourceBundle.getBundle("application",Locale.CHINA); url = bundle.getString("test.url"); } @Test public void testGetCookies() throws IOException { String result; //从配置文件中 拼接测试的url String uri = bundle.getString("getCookies.uri"); String testUrl = this.url + uri; //HttpGet 相当于在浏览器地址栏输入一个地址 HttpGet get = new HttpGet(testUrl); //DefaultHttpClient 相当于一个浏览器,先new一个浏览器 DefaultHttpClient client = new DefaultHttpClient(); //client.execute(get) 相当于用浏览器打开网页了,获得一个response结果 HttpResponse response = client.execute(get); //response.getEntity() 打印请求的实体内容 返回json格式 //EntityUtils.toString() 将json格式实体内容转换成字符串String result = EntityUtils.toString(response.getEntity(),"utf-8"); System.out.println(result); //获取cookies信息 this.store = client.getCookieStore(); List<Cookie> cookieList = this.store.getCookies(); for (Cookie cookie : cookieList) { String name = cookie.getName(); String value = cookie.getValue(); System.out.println("cookie name = "+name+",cookie value = "+value); } } @Test(dependsOnMethods = {"testGetCookies"}) public void testGetWithCookies() throws IOException { //测试url拼接,使用ResourceBundle bundle 来读取.properties文件配置内容 String uri = bundle.getString("test.get.with.cookies"); String testUrl = this.url + uri; //HttpGet 相当于在浏览器中输入url HttpGet get = new HttpGet(testUrl); //DefaultHttpClient 相当于创建打开一个浏览器 DefaultHttpClient client = new DefaultHttpClient(); //设置cookies信息 client.setCookieStore(this.store); //HttpResponse 相当于浏览器打开网页,并或得了响应结果 HttpResponse response = client.execute(get); //获取响应状态码 int statusCode = response.getStatusLine().getStatusCode(); System.out.println("statusCode = "+statusCode); if(statusCode == 200) { //获取响应格式为json的实体内容,并转换为字符串 String result = EntityUtils.toString(response.getEntity(),"utf-8"); System.out.println(result); } } }
三、httpclient模拟携带cookie信息的post请求(请求格式为json)
四、httpclient模拟携带cookie信息的post请求(请求格式为表单)