0

我正在调试 Selenium-rc 代理服务器中的一些代码。罪魁祸首似乎是HttpURLConnection对象,其获取 HTTP 标头的接口无法处理重复的标头名称,例如:

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

通过HttpURLConnection(using getHeaderField(int n)and getHeaderFieldKey(int n)) 获取标题的方式似乎导致我的第二个 cookie 丢失。我的问题是

  1. 是不是HttpURLConnection自己应付不来,和
  2. 如果是这样,是否有解决方法?
4

3 回答 3

1

我推荐的解决方法是根本不使用 HttpUtilConnection,这是粗略且不直观的,而是使用 commons-httpclient 代替。

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

于 2008-10-01T07:35:10.327 回答
0

没有实际尝试过(不记得自己处理过该主题),还有从UrlConnection继承的 getHeaderFields 。这能满足您的需要吗?

于 2008-10-01T07:29:49.983 回答
0

好的,我找到了问题,以及原始问题的答案。基本上,我使用的 Cookie 实现(python 的默认 Cookie Lib)使用 \r\n 来分隔不同的 Set-Cookie 标头(应该是 \n),这混淆了 HttpUrlConnection 并导致它在第一次出现该分隔符时停止(我猜它会停在第一个空行)。所以第一个问题的答案是:是的,它可以处理重复的标题名称,但在另一种方面是错误的。目前修复 python 库是一个可行的解决方法,但它不会长期工作,因为我们不拥有那个库。我确信使用 httpclient 库是一种明智的选择,但我希望有一个需要较少工作的解决方案。所以我还不知道在那里做什么。

于 2008-10-01T08:14:09.487 回答