RestAssured接口自动化从入门到框架搭建-10-RestAssured获取响应头和Cookies

本文介绍如何使用RestAssured工具获取HTTP响应头和Cookies信息,包括获取单个Header、所有Headers、Cookies及其详细属性,如过期时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇来学习下Rest Assured中如何获取响应头和cookies,前面某一篇,我们介绍过如何拿到 响应内容,再做其他操作这条用例,本篇就是在拿到响应内容基础上,再获取headers 和cookies。

 

1.获取Headers

        /**
	 * 得到响应头
	 */
	@Test
	public void testGetResponseHeaders() {
		Response res = get("http://jsonplaceholder.typicode.com/photos");
		// 得到一个响应header中字段
		String headerCFRAY = res.getHeader("CF-RAY");
		System.out.println("CF-RAY: " + headerCFRAY);
		
		// 得到全部的headers
		Headers headers = res.getHeaders();
		for (Header h : headers) {
			System.out.println(h.getName() + ":" + h.getValue());
		}
	}

运行结果

[RemoteTestNG] detected TestNG version 6.14.3
CF-RAY: 4fb6dafa2a0532e1-HKG
Date:Wed, 24 Jul 2019 15:16:27 GMT
Content-Type:application/json; charset=utf-8
Transfer-Encoding:chunked
Connection:keep-alive
Set-Cookie:__cfduid=dc375e91c76ca96482f7d7e07e691fbc01563981387; expires=Thu, 23-Jul-20 15:16:27 GMT; path=/; domain=.typicode.com; HttpOnly
X-Powered-By:Express
Vary:Origin, Accept-Encoding
Access-Control-Allow-Credentials:true
Cache-Control:public, max-age=14400
Pragma:no-cache
Expires:Wed, 24 Jul 2019 19:16:27 GMT
X-Content-Type-Options:nosniff
Etag:W/"105970-HCYFejK2YCxztz8++2rHnutkPOQ"
Content-Encoding:gzip
Via:1.1 vegur
CF-Cache-Status:HIT
Age:445
Server:cloudflare
CF-RAY:4fb6dafa2a0532e1-HKG
PASSED: testGetResponseHeaders

这个很简单,获取某一个需要Key来获取value,冒号左边就是key,右边就是value,获取多个就是要foreach 集合遍历就行。

 

2.获取cookies

再来一个cookies的获取的例子。

我们手动在浏览器打开 http://jsonplaceholder.typicode.com/photos

浏览器自带F12工具去看看请求头中的cookies

上面这个只有一个cookies,我们来看看代码如何拿到这个cookies.

        /**
	 * 得到cookies
	 */
	@Test
	public void getCookies() {
		Response res = get("http://jsonplaceholder.typicode.com/photos");
		Map<String, String> cookies = res.getCookies();
		
		//遍历集合,拿到每一个cookies
		for (Map.Entry<String, String> entry : cookies.entrySet()) {
			System.out.println(entry.getKey() + ":" + entry.getValue());
		}
		
	}

运行结果

[RemoteTestNG] detected TestNG version 6.14.3
__cfduid:d5e86b93acfb5c8e74246613aae27d9231564154045
PASSED: getCookies

这个每次请求的cookies都不一样,和上面红圈的格式是一样的。

 

3.得到cookies的详细信息

我们还可以得到cookies的详细信息,例如过期时间等,前提是要根据cookie的key去拿到这个cookie的详细信息。

        /**
	 * 得到cookies详细信息
	 */
	@Test
	public void getCookiesDetailsInfo() {
		Response res = get("http://jsonplaceholder.typicode.com/photos");
		
		//得到一个详细cookies对象
		Cookie c = res.getDetailedCookie("__cfduid");
		System.out.println("判断这个cookies是否有过期时间设定: " + c.hasExpiryDate());
		System.out.println("打印cookies的过期时间: " + c.getExpiryDate());
		System.out.println("判断是否值: " + c.hasValue());
	}

得到

[RemoteTestNG] detected TestNG version 6.14.3
判断这个cookies是否有过期时间设定: true
打印cookies的过期时间: Sat Jul 25 23:21:38 CST 2020
判断是否值: true
PASSED: getCookiesDetailsInfo

关于cookies的详细信息,还有一些方法自己可以在上面代码c. 后面弹出的方法补全,看看这些方法的作用。上面我只是介绍了三种方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值