【问题标题】:How to get cookie from a 302 HTTP status response using Flex HTTPService如何使用 Flex HTTPService 从 302 HTTP 状态响应中获取 cookie
【发布时间】:2012-05-27 21:13:10
【问题描述】:

在我的 Flex 应用程序中,我需要对 j_security_check 表单进行身份验证(这似乎是一种流行的身份验证方式),在 HTTP POST 请求中提供 j_usernamej_password 字段作为参数。我打算用一个简单的 HTTPService 来实现(我知道的另一个选项是 URLLoader,但它提供了相同的结果)。发送 POST 请求后,我等待包含jsessionid 作为SetCookie 的响应。但是,我得到了一个 html 页面,该页面只有在我收到 jsessionid 后才会出现。

以下是 HTTP 数据包的实际样子:

  1. 我对 [baseurl]/j_security_check 的 POST 请求包含 j_usernamej_password
  2. 包含jsessionid 作为SetCookie 的HTTP 状态302 响应
  3. 从我的应用程序到[baseurl]/login.jsp 的GET 请求(我没有发送!)仅包含一个jsessionid,该请求与前一个数据包一起接收。
  4. HTTP 状态 200 响应包含一个 html 页面,成功登录后应在 Web 浏览器中查看该页面。

我需要jsessionid 的值来使用不同的、基于 SOAP 的 Web 服务作为身份验证方式。但我似乎无法获得它——Flex HTTPService 默默地捕捉到 302 响应并发送下一个 GET;之后就找不到cookie了。

..但是,cookie 肯定缓存在 Flex 中的某个位置,因为它被提供给从任何 HTTPService 实例到此服务器的所有进一步请求!

我想知道它是否可以与网络服务一起使用。因此我的问题是:如何在 Flex 中获取此 cookie 的值?

【问题讨论】:

    标签: apache-flex cookies adobe session-cookies httpservice


    【解决方案1】:

    显然,在收到setCookie HTML 标头后,Flex 会将其提供给任何后续的 HTTP 请求 - 无论是 HTTPService 还是 SOAP WebService。我还没有找到获取此setCookie 值的方法,但无论如何这种情况都适用于我的情况。

    更新:这是 Adob​​e Flex JIRA 中已确认的错误:http://bugs.adobe.com/jira/browse/SDK-15049 决议“推迟”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-06
      • 2019-12-11
      • 1970-01-01
      • 2015-10-08
      • 2014-10-17
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多