2929import java .util .HashMap ;
3030import java .util .List ;
3131import java .util .Map ;
32- import java .util .Objects ;
3332import java .util .Set ;
3433import java .util .function .BiConsumer ;
3534import java .util .function .Supplier ;
36- import java .util .stream .Collectors ;
3735import org .openqa .selenium .internal .Require ;
3836
3937abstract class HttpMessage <M extends HttpMessage <M >> {
@@ -92,11 +90,8 @@ public Iterable<String> getHeaderNames() {
9290 * @return an iterable view of the values
9391 */
9492 public Iterable <String > getHeaders (String name ) {
95- return headers .entrySet ().stream ()
96- .filter (e -> Objects .nonNull (e .getKey ()))
97- .filter (e -> e .getKey ().equalsIgnoreCase (name .toLowerCase ()))
98- .flatMap ((e ) -> e .getValue ().stream ())
99- .collect (Collectors .toList ());
93+ return Collections .unmodifiableCollection (
94+ headers .getOrDefault (name .toLowerCase (), Collections .emptyList ()));
10095 }
10196
10297 /**
@@ -106,12 +101,8 @@ public Iterable<String> getHeaders(String name) {
106101 * @return the value
107102 */
108103 public String getHeader (String name ) {
109- return headers .entrySet ().stream ()
110- .filter (e -> Objects .nonNull (e .getKey ()))
111- .filter (e -> e .getKey ().equalsIgnoreCase (name .toLowerCase ()))
112- .flatMap ((e ) -> e .getValue ().stream ())
113- .findFirst ()
114- .orElse (null );
104+ List <String > values = headers .getOrDefault (name .toLowerCase (), Collections .emptyList ());
105+ return !values .isEmpty () ? values .get (0 ) : null ;
115106 }
116107
117108 /**
@@ -146,7 +137,7 @@ public M addHeader(String name, String value) {
146137 * @return self
147138 */
148139 public M removeHeader (String name ) {
149- headers .keySet (). removeIf ( header -> header . equalsIgnoreCase ( name ));
140+ headers .remove ( name . toLowerCase ( ));
150141 return self ();
151142 }
152143
0 commit comments