httpclient几种请求方式
一、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)
public class MyCookiesForPost {
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 testPostMethod() throws IOException {
String uri = bundle.getString("test.post.with.cookies");
//拼接最终的测试地址
String testUrl = this.url + uri; //声明一个client对象,用来进行方法的执行;相当于打开一个浏览器
DefaultHttpClient client = new DefaultHttpClient();
//声明一个方法,这个方法就是post方法;相当于在浏览器中输入一个请求地址
HttpPost post = new HttpPost(testUrl);
//添加参数(json格式类型的请求参数)
JSONObject param = new JSONObject();
param.put("name","huhansan");
param.put("age","18");
//设置请求头信息 设置header
post.setHeader("content-type","application/json");
//将参数信息添加到方法中,将参数绑定到请求信息中
StringEntity entity = new StringEntity(param.toString(),"utf-8");
post.setEntity(entity);
//声明一个对象用来进行响应结果的存储
String result;
//设置cookies信息
client.setCookieStore(this.store);
//执行post方法
HttpResponse response = client.execute(post);
//获取响应结果
result = EntityUtils.toString(response.getEntity(),"utf-8");
System.out.println(result);
//处理结果,判断返回结果是否符合预期
//将返回的响应结果字符串转换成json对象
JSONObject resultJson = new JSONObject(result);
//判断具体的返回结果值
String success = (String) resultJson.get("huhansan");
String status = (String) resultJson.get("status");
Assert.assertEquals("success",success);
Assert.assertEquals("1",status); }
}
四、httpclient模拟携带cookie信息的post请求(请求格式为表单)
public class MyCookiesForPost {
private String url;
private ResourceBundle bundle;
//用来存储cookies信息的变量
private CookieStore store;
@BeforeTest
public void beforeTest() {
bundle = ResourceBundle.getBundle("application", Locale.CHINA);
url = bundle.getString("wms.login.url");
} @Test
public void testGetCookies() throws IOException {
String result;
String uri = bundle.getString("wms.login.uri");
String testUrl = this.url + uri; //测试逻辑代码编写
HttpGet get = new HttpGet(testUrl);
DefaultHttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(get);
System.out.println(response);
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 testPostMethod() throws IOException {
String uri = bundle.getString("wms.login.validate");
//拼接最终测试地址
String testUrl = this.url + uri; //声明一个client对象,用来进行方法的执行
DefaultHttpClient client = new DefaultHttpClient();
//声明一个方法,这个方法就是post方法
HttpPost post = new HttpPost(testUrl);
//添加参数
List <NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("username","ldcx"));
nvps.add(new BasicNameValuePair("password","123456"));
//设置请求头信息 设置header
post.setHeader("content-type","application/x-www-form-urlencoded");
//将参数信息添加到方法中
HttpEntity entity = new UrlEncodedFormEntity(nvps,"utf-8");
//StringEntity entity = new StringEntity(nvps.toString(),"utf-8");
post.setEntity(entity);
System.out.println("请求url地址"+post.getURI());
//声明一个对象来进行响应结果的存储
String result;
//设置cookies信息
client.setCookieStore(this.store);
//执行post请求
HttpResponse response = client.execute(post);
//获取响应结果
result = EntityUtils.toString(response.getEntity(),"utf-8");
System.out.println(result); }
@Test(dependsOnMethods = {"testPostMethod"})
public void testGetWareHouse() throws IOException {
String result;
String uri = bundle.getString("wms.warehouse");
String testUrl = this.url + uri; //测试逻辑代码编写
HttpGet get = new HttpGet(testUrl);
DefaultHttpClient client = new DefaultHttpClient();
client.setCookieStore(this.store);
HttpResponse response = client.execute(get);
System.out.println(response);
result = EntityUtils.toString(response.getEntity(),"utf-8");
System.out.println(result);
}
}
httpclient几种请求方式的更多相关文章
- HttpwebClient的四种请求方式
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷. 本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...
- Ajax中的get和post两种请求方式的异同
Ajax中我们经常用到get和post请求.那么什么时候用get请求,什么时候用post方式请求呢? 在做回答前我们首先要了解get和post的区别. 1. get是把参数数据队列加到提交表单的A ...
- Ajax的get和post两种请求方式区别
Ajax的get和post两种请求方式区别 (摘录):http://ip-10000.blog.sohu.com/114437748.html 解get和post的区别. 1. get是把参数数据队列 ...
- SpringMVC的REST风格的四种请求方式
一. 在HTTP 协议里面,四个表示操作方式的动词:GET.POST.PUT.DELETE. ·它们分别对应四种基本操作: 1.GET ====== 获 取资源 2.POST ======新建资源 ...
- 【spring springmvc】这里有你想要的SpringMVC的REST风格的四种请求方式
概述 之前的文章springmvc使用注解声明控制器与请求映射有简单提到过控制器与请求映射,这一次就详细讲解一下SpringMVC的REST风格的四种请求方式及其使用方法. 你能get的知识点 1.什 ...
- 第三节:总结.Net下后端的几种请求方式(WebClient、WebRequest、HttpClient)
一. 前言 前端调用有Form表单提交,ajax提交,ajax一般是用Jquery的简化写法,在这里不再过多介绍: 后端调用大约有这些:WebCient.WebRequest.Httpclient.W ...
- jQuery中的Ajax几种请求方式
1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) : 请求的HTML页的URL地址. data (M ...
- http8种请求方式
根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELE ...
- 两种请求方式URLHttpconnection 和Httpclient提交表单 网络篇(二)
安卓有两种发送请求的方式:URLHttpconnection 和Httpclient 下面就来讲下这两种方式,这篇是最基础的使用 进阶请看第二篇 先占位 打扫卫生去了T T 快过年了 框架就放网络篇 ...
随机推荐
- (十七)logging模块
logging模块是Python内置的标准模块,主要用于输出运行日志. 简单应用 import logging logging.debug('+++debug+++') logging.info('+ ...
- 创建mysql帐户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- HarmonyOS三方件开发指南(5)——Photoview组件
PhotoView使用说明 1. PhotoView功能介绍1.1 组件介绍: PhotoView是一个继承自Image的组件,不同之处在于:它可以进行图击放大功能,手势缩放功能(暂无 ...
- 动态sql语句、逆向工程(generator)、分页助手(pagehelper)
1.动态sql语句 if if where 配合使用 <select id="selectByWhere" resultType="com.alibaba.wlq. ...
- web框架的本质:
简单的web框架 web的应用本质其实就是socket服务器,用户所使用的浏览器就是一个cocket客户端,客户使用浏览器发送的请求会被服务接收,服务器会按照http协议的响应协议来回复请求,这样的网 ...
- 线上nginx的一次“no live upstreams while connecting to upstream ”分析
线上nginx的一次"no live upstreams while connecting to upstream "分析 线上nginx的一次"no live upst ...
- python中贪婪与非贪婪
Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符: 非贪婪则相反,总是尝试匹配尽可能少的字符. 在"*","?", ...
- LOJ2436
题目描述 幼儿园里有 N 个小朋友, lxhgww 老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于 ...
- 【ElasticSearch】 使用AWS云ES服务来分析程序日志
最近公司系统升级,有些API的调用接口达到了每天10几万的请求量.目前公司里的日志,都是写文本文件中的.为了能够更好的分析这些日志数据,公司采用了AWS 的 ElasticSearch服务来分析日志. ...
- 安装Archlinux+UEFI启动
为了安装Arch自己也走了很多弯路,找了很多教程,最后探索出了这样一个安装方法,不一定适用于每个人. ArchWiki官方安装手册 本方法全程插上网线. 准备 获取镜像 镜像可以从官网获取,访问官方下 ...