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