如何提取请求的URL放心?



我想提取请求的URL放心,我尝试了given().log().all()这是记录一切,我只想提取我的请求URI。

given().log().uri()将在控制台上打印请求uri

">QueryableRequestSpecification";是Rest-Assured中的一个接口,它提供了如下方法:getBaseUri()、getBasePath()、getBody()、getHeaders()等。为了提供对上述接口的参考,您需要使用:SpecificationQuerier.query()方法。

注意:您可能需要对现有代码进行一些更改。因为您需要将所有给定的参数存储在RequestSpecification的引用中,然后它的引用需要用于调用get/post/put/delete方法。

参考下面的代码:(您需要提供有效的baseUri和basePath)

RequestSpecification requestSpec= RestAssured.given().baseUri("Some Base URI").basePath("/SomeBasePath");
requestSpec.get();
QueryableRequestSpecification queryRequest = SpecificationQuerier.query(requestSpec);
String retrieveURI = queryRequest.getBaseUri();
System.out.println("Base URI is : "+retrieveURI);
String retrievePath = queryRequest.getBasePath();
System.out.println("Base PATH is : "+retrievePath);

如果像我一样,你有一个带有pathParameters的basePath,使用queryRequest.getBasePath()只会返回你构建路径的值:

例子
RequestSpecification requestSpec= RestAssured.given().baseUri("http://example.com").basePath("/{someid}/info");
requestSpec.get();
QueryableRequestSpecification queryRequest = SpecificationQuerier.query(requestSpec);
String retrievePath = queryRequest.getBasePath();
System.out.println("Base PATH is : "+retrievePath);

将返回Base PATH is : /{someid}/info

如果你需要完整的url和已解析的basePath,使用getURI()代替

String retrievePath = queryRequest.getURI();
System.out.println("Full PATH is : "+retrievePath);

将返回Full PATH is : http://example.com/1234/info

你的IDE可能会像我一样用红色显示方法(intelliJ)不知道为什么,但这里是方法的参考:https://javadoc.io/doc/io.rest-assured/rest-assured/3.1.1/io/restassured/specification/QueryableRequestSpecification.html#getURI--

最新更新