首页 > 解决方案 > 我如何捕获请求标头中动态变化的引用值

问题描述

我想将引用值添加到我的代码中,但是当我通过检查 Chrome 从网络选项卡检查它时,引用值不是恒定的,它总是在变化。我如何在我的代码中捕获和定义它?有没有办法将引用者设置为请求标头中的参数?

我正在使用 Java 使用 RestAssure 框架。

   RestAssured.baseURI="https://test-v2-api.mykredit.com/api/customer/light";
    //RestAssured.baseURI="https://test-v2-api.mykredit.com/api/membership";
    RequestSpecification httpRequest2 = RestAssured.given();
    JSONObject requestparam2 = new JSONObject();
    System.out.println(mobilenum.substring(5)); 
    requestparam2.put("pin",mobilenum.substring(5));
    
    httpRequest2.header("Content-Type","application/json; charset=utf-8");
    httpRequest2.body(requestparam2.toJSONString());
    
    //Response response = httpRequest2.request(Method.POST,"/login");
    Response response = httpRequest2.request(Method.POST,"/pinValidate");
    String responseBody = response.getBody().asString();
    System.out.println(responseBody);
    
    int status = response.getStatusCode();
    System.out.println("Status"+" "+status);
    Assert.assertEquals(status, 200);
    
}

推荐人

标签: javajsonrestrest-assuredrest-assured-jsonpath

解决方案


您可以使用(java 文档getHeader(String name))中的方法从响应标头中检索值。io.restassured.response

Response response = httpRequest2.request(Method.POST,"/pinValidate");
String referer = response.getHeader("referer");

进口;

import io.restassured.response.Response;

您也可以使用该header(String name)方法。


更新

您可以使用(Java 文档getHeaders())中的方法来检索请求标头。io.restassured.internal.RequestSpecificationImpl

Response response = httpRequest2.request(Method.POST,"/pinValidate");
String refererValue = ((RequestSpecificationImpl) httpRequest2).getHeaders().get("referer").getValue();

进口;

import io.restassured.internal.RequestSpecificationImpl;

推荐阅读