Skip to content

Commit 2f5c9e4

Browse files
committed
allowed duplicated headers in action monitor
1 parent a0c9c47 commit 2f5c9e4

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

moco-core/src/main/java/com/github/dreamhead/moco/action/ActionMonitor.java

+20-4
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
import java.io.IOException;
2626
import java.net.URI;
2727
import java.net.URISyntaxException;
28-
import java.util.Arrays;
28+
import java.util.ArrayList;
29+
import java.util.HashMap;
2930
import java.util.List;
3031
import java.util.Map;
3132
import java.util.stream.Collectors;
@@ -56,9 +57,24 @@ private Map<String, String[]> asQueries(final List<NameValuePair> queries) {
5657
.collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().toArray(new String[0])));
5758
}
5859

59-
private Map<String, String> asHeaders(final Header[] allHeaders) {
60-
return Arrays.stream(allHeaders)
61-
.collect(Collectors.toMap(NameValuePair::getName, NameValuePair::getValue));
60+
private static Map<String, Iterable<String>> asHeaders(final Header[] httpHeaders) {
61+
Map<String, Iterable<String>> headers = new HashMap<>();
62+
for (Header header : httpHeaders) {
63+
String key = header.getName();
64+
List<String> values = getValues(headers, key);
65+
values.add(header.getValue());
66+
headers.put(key, values);
67+
}
68+
69+
return headers;
70+
}
71+
72+
private static List<String> getValues(final Map<String, Iterable<String>> headers, final String key) {
73+
if (headers.containsKey(key)) {
74+
return (List<String>) headers.get(key);
75+
}
76+
77+
return new ArrayList<>();
6278
}
6379

6480
public final void postAction(final CloseableHttpResponse response) throws IOException {

0 commit comments

Comments
 (0)