放心在打额外的电话
Rest-assured is making an extra call
我正在使用 rest-assured 测试 REST API。当我发送 POST 请求时,看起来很放心,正在拨打额外的电话。这是 /var/log/httpd/access_log 的输出:
11.31.41.111 - - [26/Nov/2019:19:39:14 +0000] "POST /rest/v1/contact HTTP/1.1" 401 340 "-" "Apache-HttpClient/4.5.3 (Java/1.8.0_221)"
11.31.41.111 - - [26/Nov/2019:19:39:14 +0000] "POST /rest/v1/contact HTTP/1.1" 200 515 "-" "Apache-HttpClient/4.5.3 (Java/1.8.0_221)"
当我使用 Postman 发送完全相同的请求时,访问日志显示只有一个请求到达服务器:
11.31.41.111 - - [26/Nov/2019:19:40:44 +0000] "POST /rest/v1/contact/ HTTP/1.1" 200 529 "-" "PostmanRuntime/7.19.0"
知道为什么会这样吗?
在构建 RestAssured 请求规范时,您应该使用抢占式身份验证。这是一个例子:
RestAssured.given().auth().preemptive().basic("username", "password")
.when().get("http://example.com")
.then().statusCode(200);
我正在使用 rest-assured 测试 REST API。当我发送 POST 请求时,看起来很放心,正在拨打额外的电话。这是 /var/log/httpd/access_log 的输出:
11.31.41.111 - - [26/Nov/2019:19:39:14 +0000] "POST /rest/v1/contact HTTP/1.1" 401 340 "-" "Apache-HttpClient/4.5.3 (Java/1.8.0_221)"
11.31.41.111 - - [26/Nov/2019:19:39:14 +0000] "POST /rest/v1/contact HTTP/1.1" 200 515 "-" "Apache-HttpClient/4.5.3 (Java/1.8.0_221)"
当我使用 Postman 发送完全相同的请求时,访问日志显示只有一个请求到达服务器:
11.31.41.111 - - [26/Nov/2019:19:40:44 +0000] "POST /rest/v1/contact/ HTTP/1.1" 200 529 "-" "PostmanRuntime/7.19.0"
知道为什么会这样吗?
在构建 RestAssured 请求规范时,您应该使用抢占式身份验证。这是一个例子:
RestAssured.given().auth().preemptive().basic("username", "password")
.when().get("http://example.com")
.then().statusCode(200);