Java 以字符串形式获取放心的请求规范
我试图以字符串形式获取所有请求详细信息(请求url、代理、头、正文等),因为我需要将其重定向到一个logback日志文件。我声明了一个公共基类,其中声明了请求变量(io.restasured.specification.RequestSpecification) 我在stepDef类的默认构造函数中使用这个基类。每个stepDef类都有其唯一的log实例。我在这里尝试过使用这些解决方案,但没有成功 我尝试了以下解决方案:Java 以字符串形式获取放心的请求规范,java,rest-assured,web-api-testing,Java,Rest Assured,Web Api Testing,我试图以字符串形式获取所有请求详细信息(请求url、代理、头、正文等),因为我需要将其重定向到一个logback日志文件。我声明了一个公共基类,其中声明了请求变量(io.restasured.specification.RequestSpecification) 我在stepDef类的默认构造函数中使用这个基类。每个stepDef类都有其唯一的log实例。我在这里尝试过使用这些解决方案,但没有成功 我尝试了以下解决方案: RestAssured.config=RestAssured.config
RestAssured.config=RestAssured.config().logConfig(新的logConfig(baseClass.loggerPrintStream.getPrintStream(),false))代码>
baseClass.request.config(RestAssured.config().logConfig(新logConfig(baseClass.loggerPrintStream.getPrintStream(),true)).log().all()代码>
baseClass.request.filter(新的RequestLoggingFilter(baseClass.loggerPrintStream.getPrintStream())代码>
以上这些似乎都没能帮到我。我只想将完整的请求规范(baseClass.request)作为字符串获取,这样我就可以将字符串写入日志文件,并提供更多详细信息。如果您有
RequestSpecification
,您可以使用queryablerequestspecification
从请求中获取数据,如下所示:
RequestSpecification requestSpecification = given()
.auth()
.preemptive()
.basic("username", "password")
.contentType("application/json")
.header("x-api-key", "some api key");
QueryableRequestSpecification queryable = SpecificationQuerier.query(requestSpecification);
System.out.println("Header is: " + queryable.getHeaders().get("x-api-key"));
您可以将规范保存到文件中,而不是将其打印到控制台