2008-10-01 5 views
0

Я отлаживаю некоторый код в прокси-сервере Selenium-rc. Кажется, что преступник является объектом HttpURLConnection, чей интерфейс для получения на заголовках HTTP не справляется с повторяющимися именами заголовка, например:Java HttpURLConnection: Может ли он справиться с повторяющимися именами заголовков?

 
Set-Cookie: foo=foo; Path=/ 
Set-Cookie: bar=bar; Path=/ 

путем получения в заголовках через HttpURLConnection (с использованием getHeaderField (интермедиат n) и getHeaderFieldKey (int n)), похоже, что мой второй файл cookie будет потерян. Мой вопрос

  1. Верно ли, что HttpURLConnection сама не может справиться с этим, и
  2. Если да, то есть обходной путь к нему?

ответ

0

Не пробовав (не помню, чтобы обработать эту тему самостоятельно), есть также getHeaderFields, унаследованные от UrlConnection. Делает ли это то, что вам нужно?

+0

Нет, метода возвращает карту, которая, безусловно, не будет иметь одинаковые имена заголовков. – airportyh 2008-10-01 07:34:18

+0

... но он возвращает карту со значениями списка, а не только одиночные струны ... – 2008-10-02 17:36:12

1

Моя рекомендуется устранить проблему, чтобы не использовать HttpUtilConnection вообще, что является грубым и неинтуитивными, но использовать Обще-HttpClient вместо этого.

http://hc.apache.org/httpclient-3.x/

0

Хорошо, я нашел эту проблему, и ответ на первоначальный вопрос. В основном, реализация Cookie я использовал (питон по умолчанию Cookie Lib) используется \ г \ п, чтобы разграничить различные заголовки Set-Cookie (как предполагается \ п), это смущало HttpURLConnection и заставил его остановиться на первое появлении этого разделитель (Я собираюсь угадать, что он останавливается на первой пустой строке). Таким образом, ответ на первый вопрос: Да, он может справиться с повторяющимися именами заголовков, но с ошибкой по-другому. В настоящее время исправление библиотеки python является эффективным решением, но оно не будет работать долгое время, потому что мы не владеем этой библиотекой. Я уверен, что использование библиотеки httpclient - разумный путь, но я надеюсь на решение, требующее меньше работы. Поэтому я точно не знаю, что делать.

 Смежные вопросы

  • Нет связанных вопросов^_^