Android:使用提供的会话Cookie打开浏览器

时间:2010-08-26 09:35:28

标签: android android-intent

我目前正在寻找一种在Android上启动默认浏览器应用程序并将会话cookie传递给它的方法。

我的应用程序使用HttpClient与我无法控制的外部API通信,然后将用户传递到站点进行最后阶段。

我知道这可能是使用WebView的,但我特别需要打开外部浏览器应用程序而不是使用内部WebView。

我知道:

Intent.ACTION_VIEW

可以用来打开浏览器,但是我还没有设法找到有关实际传递任何其他数据的更多信息。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:6)

  

我目前正在寻找一种在Android上启动默认浏览器应用程序并传递会话的方法   饼干给它。

这是不可能的,抱歉。

答案 1 :(得分:4)

你知道url-rewrite吗?它将帮助您实现您的需求。 url-write可能是这样的: 的 “http://本地主机:8080 /测试/ error.jsp文件; JSESSIONID = C4E6732EBB4C17F409AB41143735C096”

“jsessionid”是sessionid的关键,C4E6732EBB4C17F409AB41143735C096是值。表示sessionid属性的关键因素取决于Web项目中使用的语言。

因此,如果您想保留会话,可以像这样启动默认值:

    Uri uri = Uri.parse("http://localhost:8080/test/error.jsp;jsessionid=C4E6732EBB4C17F409AB41143735C096");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);

您可以从HttpClient获取的会话ID,并将其添加到您的网址后面。

还有一些问题需要注意。首先,在url中,分隔符是“;”不是“?”,因为sessionid在http标头中,而不是http主体。其次,如果浏览器已经与服务器进行了会话,那么url-rewrite将无法工作,因为浏览器将使用自己的会话来解决此问题,您可以使用app来获取浏览器的会话并使用此会话在HttpClient中。