如何在Postman调用API时获取请求头值?JAX-RS接口提取RedId方法
问题1:在Postman中调用API时,如何获取调用时传递的请求头值?
有两种常用场景的实现方式:
- 查看已发送请求的请求头内容:
发送请求后,切换到「Headers」标签页,在「Request Headers」区域就能看到当前请求实际发送的所有请求头及其对应值。 - 在脚本(Pre-request Script/Tests)中获取请求头值:
使用pm.request.headers.get("Header-Name")语法,将Header-Name替换为目标请求头的名称。比如获取Content-Type的示例代码:const contentType = pm.request.headers.get("Content-Type"); console.log(contentType); // 可在Postman控制台查看结果
问题2:在JAX-RS的POST接口中提取请求头RedId
可以通过两种简洁方式实现:
方式1:使用@HeaderParam注解直接注入
修改方法参数,添加@HeaderParam("RedId")注解,JAX-RS会自动将对应请求头的值注入到参数中:
@POST @Path("/id") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response getDetails(DetailsRequest detailsRequest, @HeaderParam("RedId") String redId) { // 直接使用redId变量即可 return Response.ok().build(); }
方式2:通过HttpHeaders对象获取
注入HttpHeaders实例,调用getHeaderString()方法获取指定请求头的值:
import javax.ws.rs.core.HttpHeaders; @POST @Path("/id") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response getDetails(DetailsRequest detailsRequest, @Context HttpHeaders headers) { String redId = headers.getHeaderString("RedId"); // 使用redId变量 return Response.ok().build(); }
如果RedId请求头可能存在多个值,可使用headers.getRequestHeader("RedId")获取一个List<String>类型的结果。
内容的提问来源于stack exchange,提问作者Udit R M
相关产品推荐
相关产品推荐

