【发布时间】:2012-05-27 21:13:10
【问题描述】:
在我的 Flex 应用程序中,我需要对 j_security_check 表单进行身份验证(这似乎是一种流行的身份验证方式),在 HTTP POST 请求中提供 j_username 和 j_password 字段作为参数。我打算用一个简单的 HTTPService 来实现(我知道的另一个选项是 URLLoader,但它提供了相同的结果)。发送 POST 请求后,我等待包含jsessionid 作为SetCookie 的响应。但是,我得到了一个 html 页面,该页面只有在我收到 jsessionid 后才会出现。
以下是 HTTP 数据包的实际样子:
- 我对
[baseurl]/j_security_check的 POST 请求包含j_username和j_password - 包含
jsessionid作为SetCookie的HTTP 状态302 响应 - 从我的应用程序到
[baseurl]/login.jsp的GET 请求(我没有发送!)仅包含一个jsessionid,该请求与前一个数据包一起接收。 - HTTP 状态 200 响应包含一个 html 页面,成功登录后应在 Web 浏览器中查看该页面。
我需要jsessionid 的值来使用不同的、基于 SOAP 的 Web 服务作为身份验证方式。但我似乎无法获得它——Flex HTTPService 默默地捕捉到 302 响应并发送下一个 GET;之后就找不到cookie了。
..但是,cookie 肯定缓存在 Flex 中的某个位置,因为它被提供给从任何 HTTPService 实例到此服务器的所有进一步请求!
我想知道它是否可以与网络服务一起使用。因此我的问题是:如何在 Flex 中获取此 cookie 的值?
【问题讨论】:
标签: apache-flex cookies adobe session-cookies httpservice