|
29 | 29 | import java.io.Reader;
|
30 | 30 | import java.net.URL;
|
31 | 31 | import java.net.URLConnection;
|
| 32 | +import java.util.Arrays; |
32 | 33 | import java.util.HashMap;
|
33 | 34 | import java.util.Map;
|
34 | 35 | import java.util.regex.Pattern;
|
|
45 | 46 | @FluxCommand("open-http")
|
46 | 47 | public final class HttpOpener extends DefaultObjectPipe<String, ObjectReceiver<Reader>> {
|
47 | 48 |
|
48 |
| - private static final Pattern HEADER_PATTERN = Pattern.compile(":\\s*"); |
| 49 | + private static final Pattern HEADER_FIELD_SEPARATOR = Pattern.compile("\n"); |
| 50 | + private static final Pattern HEADER_VALUE_SEPARATOR = Pattern.compile(":"); |
49 | 51 |
|
50 | 52 | private static final String ENCODING_HEADER = "accept-charset";
|
51 | 53 |
|
@@ -89,13 +91,15 @@ public void setEncoding(final String encoding) {
|
89 | 91 | * @param header request property line
|
90 | 92 | */
|
91 | 93 | public void setHeader(final String header) {
|
92 |
| - final String[] parts = HEADER_PATTERN.split(header, 2); |
93 |
| - if (parts.length == 2) { |
94 |
| - setHeader(parts[0], parts[1]); |
95 |
| - } |
96 |
| - else { |
97 |
| - throw new IllegalArgumentException("Invalid header: " + header); |
98 |
| - } |
| 94 | + Arrays.stream(HEADER_FIELD_SEPARATOR.split(header)).forEach(h -> { |
| 95 | + final String[] parts = HEADER_VALUE_SEPARATOR.split(h, 2); |
| 96 | + if (parts.length == 2) { |
| 97 | + setHeader(parts[0], parts[1].trim()); |
| 98 | + } |
| 99 | + else { |
| 100 | + throw new IllegalArgumentException("Invalid header: " + h); |
| 101 | + } |
| 102 | + }); |
99 | 103 | }
|
100 | 104 |
|
101 | 105 | /**
|
|
0 commit comments