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 快过年了 框架就放网络篇 ...
随机推荐
- DOS的FOR命令用法总结
鉴于dos自带的关于for命令的帮助信息看起来太简单,自己总结了一下,并增加了必要的实例,以备日后自己查阅.其中一些地方可能存在理解错误,敬请指出. [转发请注明出处]
- 物理STANDBY库创建还原点(打开为read write后再变回主库)
开启STANDBY库为READ WRITE 1.取消主库传送归档 SQL> alter system set log_archive_dest_state_2=defer; 2.取消备库应用日志 ...
- oracle关闭监听log.xml文件生成步骤
1.查看sqlnet.ora文件是否存在 cd $ORACLE_HOME/network/admin ls 如果不存在,copy一个过来 cp samples/sqlnet.ora . 2.修改sql ...
- Kubernetes 升级过程记录:从 1.17.0 升级至最新版 1.20.2
本文记录的是将 kubernetes 集群从 1.17.0 升级至最新版 1.20.2 的实际操作步骤,由于 1.17.0 无法直接升级到 1.20.2,需要进行2次过滤升级,1.17.0 -> ...
- ELK一个优秀的日志收集、搜索、分析的解决方案
1 什么是ELK? ELK,是Elastaicsearch.Logstash和Kibana三款软件的简称.Elastaicsearch是一个开源的全文搜索引擎.Logstash则是一个开源的数据收集引 ...
- kubernetes备份恢复之velero
Velero备份.恢复.迁移Kubernetes集群 Velero简介 Velero 地址:https://github.com/vmware-tanzu/velero Velero属于VMWare开 ...
- 中文电子病历命名实体识别(CNER)研究进展
中文电子病历命名实体识别(CNER)研究进展 中文电子病历命名实体识别(Chinese Clinical Named Entity Recognition, Chinese-CNER)任务目标是从给定 ...
- scrapy爬虫 简单入门
1. 使用cmd+R命令进入命令行窗口,并进入你需要创建项目的目录 cd 项目地址 2. 创建项目 scrapy startproject <项目名> cd <项目名> 例如 ...
- CF1433F Zero Remainder Sum
写在前面 思维难度不是很大的 DP,代码实现也很容易. 状态设计模式很套路,转移也很好理解. 算法思路 (因为 \(k\) 是常用的循环变量,下文中将题面中的模数改为 \(p\)) 虽然要求的是模 \ ...
- CF976B
这是一道考验思维找规律的题,很有可做性. 正文 题意 一个 n * m 的矩阵,从左上角(1 , 1) 开始,先向下走直到最下方,再向右走到最右,再向上走一个,再走到最左......一直走到(1 , ...