1

我正在使用 Worklight 6.0.0.1 构建本机 Android 应用程序,但无法连接到我们的生产 Worklight Server。

该服务器的前端是一个处理身份验证的 DataPower 设备,并要求我们在对 Worklight Server 的任何调用时发送一个特定的 cookie。

我们尝试使用 addGlobalHeader("Cookie", "cookie-name=cookievalue") 设置此 cookie,但发现使用此 API 与 Worklight 本身用于管理其会话的 cookie 不能很好地配合使用。

cookie 标头已为对 Worklight 的初始请求正确设置,Worklight 以质询响应并设置 JSESSIONID 和 WL_PERSISTENT_COOKIE。

然后,当 Android API 回答这个挑战时,我们看到在后续请求中发送了 2 个 cookie 标头,这违反了 http 标头的规范。Cookie:JSESSIONID=<...>;WL_PERSISTENT_COOKIE=<...> Cookie:

奇怪的是,如果我通过 TCPMon 代理检查流量,我可以成功连接,但如果我直接访问 DataPower 地址,它看不到标头并且无法到达 Worklight。

注入 cookie 以使我的 cookie 与 Worklight 需要的所有其他 cookie 一起进入单个 cookie 标头的正确方法是什么?

4

1 回答 1

0

添加全局标头将添加标头,它不是为 cookie 设计的。如果您需要设置 cookie,我建议您尝试 Android 的 CookieStore。使用所有相关参数(值/url/到期等)创建您的 cookie,并将其添加到 CookieStore

http://developer.android.com/reference/org/apache/http/client/CookieStore.html

于 2013-11-14T07:03:08.740 回答