如何将RestAssured的HttpHeaders转换为<String, String>类型的Map?
将RestAssured HttpHeaders 转换为 Map 集合
方法一:Java 8+ 流式转换
利用Java流快速将HttpHeaders转换为Map<String, String>,若存在重复header键,会保留最后一个对应的值:
private void executerequest(String uri, HttpHeaders requestHeader){ // 转换HttpHeaders为Map Map<String, String> headerMap = requestHeader.entriesSet() .stream() .collect(Collectors.toMap( Header::getName, Header::getValue, (existing, replacement) -> replacement )); // 示例:获取指定header值 String authToken = headerMap.get("Authorization"); }
方法二:手动遍历构建Map
如果不使用流式API,也可以通过循环遍历所有Header条目来构建Map:
private void executerequest(String uri, HttpHeaders requestHeader){ Map<String, String> headerMap = new HashMap<>(); for (Header header : requestHeader.entriesSet()) { headerMap.put(header.getName(), header.getValue()); } // 示例:获取指定header值 String contentType = headerMap.get("Content-Type"); }
处理多值Header场景
如果存在同一个header键对应多个值的情况(如Set-Cookie),可以将Map的value类型改为List<String>来保留所有值:
private void executerequest(String uri, HttpHeaders requestHeader){ Map<String, List<String>> headerMap = new HashMap<>(); for (Header header : requestHeader.entriesSet()) { headerMap.computeIfAbsent(header.getName(), k -> new ArrayList<>()).add(header.getValue()); } // 示例:获取某个header的所有值 List<String> cookies = headerMap.get("Set-Cookie"); }
内容的提问来源于stack exchange,提问作者thisisdude
相关产品推荐
相关产品推荐

