如何在Insomnia中验证响应头属性?附状态与JSON验证示例
如何在Insomnia中校验响应头属性
当然可以用Insomnia校验响应头里的各类属性,包括Date、Server这类标准响应头,以及自定义响应头。你之前获取不到响应头数据,是因为用错了响应对象的属性名。
核心问题说明
Insomnia返回的响应对象中,响应头对应的属性是复数形式的headers,而非你代码里写的单数header。另外,所有响应头的键名都会被统一转为小写,不管接口返回的头是大写还是混合大小写格式。
正确的响应头校验示例
1. 校验Server响应头
// 发送请求获取响应 const response1 = await insomnia.send(); // 先校验响应状态码(保留你原来的逻辑) expect(response1.status).to.equal(401); // 正确获取并校验Server头 const serverHeader = response1.headers.server; expect(serverHeader).to.equal('testServer');
2. 校验自定义响应头
比如接口返回了X-Custom-Info这个自定义头,代码里要转成小写的x-custom-info来获取:
// 校验自定义响应头 const customHeader = response1.headers['x-custom-info']; expect(customHeader).to.equal('expected-value');
3. 校验Date响应头(格式校验)
const dateHeader = response1.headers.date; // 校验Date头符合HTTP标准格式(比如 "Wed, 21 Oct 2015 07:28:00 GMT") expect(dateHeader).to.match(/^\w{3}, \d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2} GMT$/);
你之前的错误原因
你写的代码里用了response1.header(单数),但Insomnia响应对象里根本没有这个属性,所以header变量是undefined,自然读不到server值:
// 错误代码:属性名应为headers(复数) const header = (response1.header); const server = (header.server); // 此处header是undefined,导致server也为undefined expect (server).to.equal('testServer');
内容的提问来源于stack exchange,提问作者VEP
相关产品推荐
相关产品推荐

