headers should be case insensive
This commit is contained in:
@@ -7,8 +7,8 @@ import com.github.nkzawa.engineio.client.EventThread;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.logging.Logger;
|
||||
@@ -41,10 +41,7 @@ public class PollingXHR extends Polling {
|
||||
@Override
|
||||
public void call(Object... args) {
|
||||
// Never execute asynchronously for support to modify headers.
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, String> headers = args.length > 0 && args[0] instanceof Map ?
|
||||
(Map<String, String>)args[0] : new HashMap<String, String>();
|
||||
self.emit(EVENT_REQUEST_HEADERS, headers);
|
||||
self.emit(EVENT_REQUEST_HEADERS, args[0]);
|
||||
}
|
||||
}).on(Request.EVENT_RESPONSE_HEADERS, new Listener() {
|
||||
@Override
|
||||
@@ -52,10 +49,7 @@ public class PollingXHR extends Polling {
|
||||
EventThread.exec(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@SuppressWarnings("unchecked")
|
||||
final Map<String, String> headers = args.length > 0 && args[0] instanceof Map ?
|
||||
(Map<String, String>)args[0] : new HashMap<String, String>();
|
||||
self.emit(EVENT_RESPONSE_HEADERS, headers);
|
||||
self.emit(EVENT_RESPONSE_HEADERS, args[0]);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -161,7 +155,7 @@ public class PollingXHR extends Polling {
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, String> headers = new HashMap<String, String>();
|
||||
Map<String, String> headers = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
|
||||
|
||||
if ("POST".equals(this.method)) {
|
||||
xhr.setDoOutput(true);
|
||||
@@ -188,8 +182,9 @@ public class PollingXHR extends Polling {
|
||||
writer.flush();
|
||||
}
|
||||
|
||||
Map<String, String> headers = new HashMap<String, String>();
|
||||
Map<String, String> headers = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
|
||||
for (String key : xhr.getHeaderFields().keySet()) {
|
||||
if (key == null) continue;
|
||||
headers.put(key, xhr.getHeaderField(key));
|
||||
}
|
||||
self.onResponseHeaders(headers);
|
||||
|
||||
@@ -16,6 +16,7 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public class WebSocket extends Transport {
|
||||
|
||||
@@ -34,7 +35,7 @@ public class WebSocket extends Transport {
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, String> headers = new HashMap<String, String>();
|
||||
Map<String, String> headers = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
|
||||
this.emit(EVENT_REQUEST_HEADERS, headers);
|
||||
|
||||
final WebSocket self = this;
|
||||
@@ -45,10 +46,11 @@ public class WebSocket extends Transport {
|
||||
EventThread.exec(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Map<String, String> headers = new HashMap<String, String>();
|
||||
Map<String, String> headers = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
|
||||
Iterator<String> it = serverHandshake.iterateHttpFields();
|
||||
while (it.hasNext()) {
|
||||
String field = it.next();
|
||||
if (field == null) continue;
|
||||
headers.put(field, serverHandshake.getFieldValue(field));
|
||||
}
|
||||
self.emit(EVENT_RESPONSE_HEADERS, headers);
|
||||
|
||||
Reference in New Issue
Block a user