gpt4 book ai didi

java - 以字符串形式获取放心的请求规范

转载 作者:行者123 更新时间:2023-12-02 02:40:14 27 4
gpt4 key购买 nike

我正在尝试以字符串形式获取所有请求详细信息(请求 url、代理、 header 、正文等),因为我需要将其重定向到 logback 日志文件。我声明了一个公共(public)基类,在其中声明了请求变量 (io.restassured.specification.RequestSpecification)

我在我的stepDef类的默认构造函数中使用这个基类。每个stepDef 类都有其唯一的log 实例。我尝试过使用这里的解决方案:How to get rest-assured log into something printable in a text file但没有成功

我尝试过以下解决方案:

  1. RestAssured.config = RestAssured.config().logConfig(new LogConfig(baseClass.loggerPrintStream.getPrintStream(), false));

  2. baseClass.request.config(RestAssured.config().logConfig(new LogConfig(baseClass.loggerPrintStream.getPrintStream(),true))).log().all();

  3. baseClass.request.filter(new 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"));

您可以将其保存到文件中,而不是将规范打印到控制台。

关于java - 以字符串形式获取放心的请求规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57183721/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com