0

我正在开发一个应用程序来登录页面,然后访问一些页面数据。我通过 Firefox 登录并使用 LiveHeaders 查看会话 cookie。

然后我更新了我的代码:

connection.addRequestProperty("Cookie", "XXXXXXXXXXXXXXXXXXXXX");

用 cookie 替换“XXXXXX”。然后程序可以访问所需的页面。

我正在尝试自动化进程并使用 Apache HttpClient。我可以通过 HttpClient 登录并获取会话 cookie,但由于某种原因,会出现以下问题:

在主要方法中,我添加了 String cookieString = doLogin(); 然后更改了我的其他方法以使用 connection.addRequestProperty("Cookie", cookieString);

由于某种原因,URLConnection 无法登录。如果我复制cookieString我打印出来的字符串,并将我的代码更改为 connection.addRequestProperty("Cookie", "[the printout of the cookie string]"); 然后它可以工作。

我不知道问题可能出现在哪里。在将其添加到标头之前,我已在方法中打印出cookieString变量,它与应有的完全相同。

cookie 似乎仅在它是静态字符串(“xxxxxx”)时才有效,如果它是 String 变量则无效。

任何想法,将不胜感激。

提前致谢。

4

1 回答 1

0

是我发布的一个示例,可能会对您有所帮助。它处理解析Set-Cookie响应标头并将其作为Cookie请求标头发送回以维护会话。

于 2011-04-15T10:00:42.867 回答