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 快过年了 框架就放网络篇 ...
随机推荐
- kubectl命令管理
kubectl命令管理 查看更多帮助命令 [root@k8s-master ~]# kubectl --help 创建一个命名空间 [root@k8s-master ~]# kubectl creat ...
- 误删数据库怎么办?mysql 回滚,撤销操作,恢复数据
刚刚不小心把数据库删掉了,于是想着上网上找找有没有可以恢复数据库的方法,没想到还真有,除了备份以外,还有以下方法. 在mysql有时执行了错误的update或者delete时导致大量数据错误恢复的办法 ...
- BAPI_PO_CHANGE
这两天用BAPI更改采购订单,遇到了一些问题,最后调试解决了.记录如下吧.要修改的是采购订单的物料号和批次,在网上看到其它人写过关于 BAPI_PO_CHANGE的用法,但是具体问题还要具体分析啊. ...
- 开发中的你的Git提交规范吗?
1. 前言 目前大部分公司都在使用Git作为版本控制,每个程序员每天都要进行代码的提交.很多开发者也包括我自己,有时候赶时间或者图省事,就这么提交: git commit -m "修改bug ...
- 与图论的邂逅06:dfs找环
当我在准备做基环树的题时,经常有了正解的思路确发现不会找环,,,,,,因为我实在太蒻了. 所以我准备梳理一下找环的方法: 有向图 先维护一个栈,把遍历到的节点一个个地入栈.当我们从一个节点x回溯时无非 ...
- 2020年12月18号--21号 人工智能(深度学习DeepLearning)python、TensorFlow技术实战
深度学习DeepLearning(Python)实战培训班 时间地点: 2020 年 12 月 18 日-2020 年 12 月 21日 (第一天报到 授课三天:提前环境部署 电脑测试) 一.培训方式 ...
- mysql半同步复制跟无损半同步区别
mysql半同步复制跟无损半同步复制的区别: 无损复制其实就是对semi sync增加了rpl_semi_sync_master_wait_point参数,来控制半同步模式下主库在返回给会话事务成功之 ...
- 第2章_神经网络入门_2-5&2-6 数据处理与模型图构建
目录 神经元的TF实现 安装 神经网络的TF实现 神经元的TF实现 安装 版本: Python 2.7 tf 1.8.0 Linux 略 demo 神经网络的TF实现 # py36 tf 2.1. # ...
- 微信小程序代码上传,审核发布小程序
1.打开微信开发者工具 管理员扫码 -> 填写好小程序的项目目录.AppID(必须是客户已注册好的AppID).项目名称 2.在app.js中修改id(客户登录后台管理系统的id),app.js ...
- 第一个 IDEA 应用程序
新建 Java Web 项目 打开 IDEA -> Create New Project 选择 Java -> Java EE -> Web Application 选择工作空间 项 ...