从webview登录到安全站点并将URL传递给HttpUrlConnection进行下载 - 错误403

时间:2012-03-08 00:02:01

标签: android webview httpurlconnection

在我的应用中,我有一个实现downloadlistener的webview。下载侦听器使用HttpUrlConnection下载具有给定URL的文件。 当我登录某个安全网站时,我遇到问题,比如dropbox.com(来自我的webview),然后尝试下载一些文件。我收到错误403 HTTP_FORBIDDEN。

是因为下载浏览器打开的HttpUrlConnection未知Webview持有的会话吗?

如何在我的webview和HttpUrlConnection之间共享同一个会话(共享sessionID?cookie?httpclient?)?

谢谢!

2 个答案:

答案 0 :(得分:2)

DownloadListener是android中比较讨厌的界面之一(为什么他们不能只传递你的流超出我,它必须已经提出要求将信息传递给DonwloadListener)无论如何,是的,你的HttpUrlConnection对webview中当前正在播放的任何cookie一无所知。您可以使用CookieManager从WebView获取有关cookie的详细信息,然后将它们添加到基于HttpUrlConnection的请求中,如下所示,

String cookie = CookieManager.getInstance().getCookie(url);
if (cookie != null) req.setRequestProperty("cookie", cookie);

答案 1 :(得分:0)

Is it because the session held by the Webview is unknown to the HttpUrlConnection opened by the downloadlistener?

可能。

为什么不在登录后使用相同的WebView下载文件?

myWebView.loadUrl(downloadURL);