如何在REST Assured中携带指定认证头发送GET请求?
使用REST Assured + JUnit添加认证请求头的GET请求改造方案
嘿,我来帮你把这段代码改成符合需求的样子,实现带指定认证请求头的GET请求~
REST Assured提供了非常直观的领域特定语言(DSL)来配置请求,我们只需要在发送GET请求前添加所需的认证头即可。下面是修改后的完整代码,我还补全了一些缺失的细节(比如日志对象初始化):
import io.restassured.RestAssured; import io.restassured.response.Response; import org.junit.Test; import java.net.URISyntaxException; import java.util.logging.Level; import java.util.logging.Logger; public class RestAPITest { // 初始化日志实例,确保能正常输出日志 private static final Logger logger = Logger.getLogger(RestAPITest.class.getName()); @Test public void getRequestTime() throws URISyntaxException { // 定义目标请求URL String targetUrl = "https://myurl.com"; // 构建并发送带认证头的GET请求 Response response = RestAssured .given() // 逐个添加认证请求头,写法清晰直观 .header("Auth-Service-Id", "my_app") .header("Auth-Identifier", "blaBlaBlabla") .header("Auth-Secret", "myauth-secret") .when() // 发送GET请求到目标URL .get(targetUrl) .then() // 可选:如果需要验证响应状态码,比如预期200成功,可以添加这行 // .statusCode(200) // 提取响应对象供后续处理 .extract() .response(); // 输出响应时间和状态码到日志 logger.log(Level.INFO, response.time() + " milliseconds"); int statusCode = response.getStatusCode(); logger.log(Level.INFO, "Response status code: " + statusCode); } }
几个关键细节说明:
- 请求头添加方式:除了上面逐个添加的
.header()方法,你也可以用.headers()一次性批量添加多个请求头,代码会更紧凑:.headers( "Auth-Service-Id", "my_app", "Auth-Identifier", "blaBlaBlabla", "Auth-Secret", "myauth-secret" ) - REST Assured DSL规范:
given()->when()->then()是REST Assured推荐的写法,逻辑清晰,可读性强,then()部分还能添加各种断言验证响应的正确性 - 日志补全:我添加了日志对象的初始化代码,确保原来的日志输出逻辑能正常工作
内容的提问来源于stack exchange,提问作者PTT
相关产品推荐
相关产品推荐

