src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/Http1Request.java
branchhttp-client-branch
changeset 56054 352e845ae744
parent 56041 b4b5e09ef3cc
child 56067 31eb9176ba85
--- a/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/Http1Request.java	Wed Jan 31 15:52:35 2018 +0000
+++ b/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/Http1Request.java	Wed Jan 31 16:18:41 2018 +0000
@@ -35,8 +35,7 @@
 import java.net.InetSocketAddress;
 import java.util.Objects;
 import java.util.concurrent.Flow;
-import java.util.function.Predicate;
-
+import java.util.function.BiPredicate;
 import jdk.incubator.http.Http1Exchange.Http1BodySubscriber;
 import jdk.incubator.http.internal.common.HttpHeadersImpl;
 import jdk.incubator.http.internal.common.Log;
@@ -82,9 +81,10 @@
         }
     }
 
+
     private void collectHeaders0(StringBuilder sb) {
-        Predicate<String> filter = connection.isTunnel()
-                ? Utils.NO_PROXY_HEADER : Utils.ALL_HEADERS;
+        BiPredicate<String,List<String>> filter =
+                connection.headerFilter(request);
 
         // If we're sending this request through a tunnel,
         // then don't send any preemptive proxy-* headers that
@@ -99,11 +99,12 @@
         sb.append("\r\n");
     }
 
-    private void collectHeaders1(StringBuilder sb, HttpHeaders headers, Predicate<String> filter) {
+    private void collectHeaders1(StringBuilder sb, HttpHeaders headers,
+                                 BiPredicate<String, List<String>> filter) {
         for (Map.Entry<String,List<String>> entry : headers.map().entrySet()) {
             String key = entry.getKey();
-            if (!filter.test(key)) continue;
             List<String> values = entry.getValue();
+            if (!filter.test(key, values)) continue;
             for (String value : values) {
                 sb.append(key).append(": ").append(value).append("\r\n");
             }