Войдите на защищенный сайт с веб-сайта и передайте URL-адрес HttpUrlConnection для загрузки - Ошибка 403 - PullRequest
3 голосов
/ 08 марта 2012

В моем приложении есть веб-представление, реализующее список загрузки. Прослушиватель загрузки использует HttpUrlConnection для загрузки файла с заданным URL-адресом. У меня возникают проблемы, когда я захожу на какой-нибудь защищенный сайт, например, dropbox.com (из моего веб-просмотра), а затем пытаюсь загрузить какой-нибудь файл. Я получаю ошибку 403 HTTP_FORBIDDEN.

Это потому, что сеанс, поддерживаемый веб-представлением, неизвестен HttpUrlConnection, открываемому списком загрузки?

Как мне совместно использовать один и тот же сеанс (совместно использовать sessionID? Cookie? Httpclient?) Между моим веб-просмотром и HttpUrlConnection?

спасибо!

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

DownloadListener - один из наиболее раздражающих интерфейсов в Android (почему они не могут просто передать вам поток, за мной нет, он уже должен был сделать запрос на передачу информации в DonwloadListener) В любом случае, да, вашHttpUrlConnection ничего не знает о файлах cookie, которые в данный момент используются в веб-просмотре.Вы можете использовать CookieManager для получения подробной информации о файлах cookie из WebView, а затем добавить их в запрос на основе HttpUrlConnection, что-то вроде этого,

String cookie = CookieManager.getInstance().getCookie(url);
if (cookie != null) req.setRequestProperty("cookie", cookie);
0 голосов
/ 08 марта 2012
Is it because the session held by the Webview is unknown to the HttpUrlConnection opened by the downloadlistener?

Возможно.

Почему бы вам не использовать тот же WebView для загрузки файла после входа в систему?

myWebView.loadUrl(downloadURL);
...