В Java, возможно ли просматривать несколько заголовков ответов в HttpURLConnection, если они имеют одно и то же имя?
В документации Oracle для "GetHeaderField" указано:
Если вы вызываете соединение, которое задает один и тот же заголовок несколько раз с возможно разными значениями, возвращается только последнее значение.
Мой вопрос: как просмотреть все разные значения для заголовка, установленного несколько раз?
Использовать getHeaderFields
List<String> values = conn.getHeaderFields().get("X-Header-Of-Interest");
Полный пример
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
public class UrlConnectionTest {
public static void main (String[] args) throws IOException {
URL url = new URL("http://localhost:8888/");
URLConnection conn = url.openConnection();
conn.getContent(); // Force request
System.out.println(conn.getHeaderFields().get("X-Funky-Header"));
}
}
В Linux вы можете создать простой сервер с одним запросом с netcat для тестирования
$ echo -e 'HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nX-Funky-Header: value1\r\nX-Funky-Header: value2\r\n\r\nContent' | nc -l 8888 &