FileNotFoundException при получении InputStream во время загрузки файла на SD-карту с помощью URLConnection - PullRequest
0 голосов
/ 28 марта 2011

Я работаю над приложением, рабочий процесс которого выглядит следующим образом:

1.разбор домашней страницы (с помощью HttpURLConnection, connect (), делать вещи, отключать (), использовать данные),

2.после того, как я нажал на ссылки, которые я сделал, проанализировал статью или загрузил файл на основе ссылки.

Первый шаг работает отлично и 2-й тоже в случае статьи, но когда я пытаюсь загрузить файл с определенного URL исохраните его на SD-карту, я получил fileNotFoundException в этой строке:

  InputStream inputStream = urlConnection.getInputStream();

Мое руководство по выполнению этого (загрузка файла) было здесь объяснено кодом http://goo.gl/GTBOP, и я установил разрешения в манифесте, как требуется дляэто действие, плюс перед любой операцией загрузки, я проверил состояние MEDIA_MOUNTED & MEDIA_MOUNTED_READ_ONLY, и, похоже, это хорошо подходит.

Итак ... Я много читал об этой проблеме в stackOverflow и других местах, и я пробовал разные предложения, такие как добавлениеэто:

urlConnection.setRequestProperty("User-Agent","Mozilla/5.0 ( compatible ) ");
urlConnection.setRequestProperty("Accept","*/*");

или

System.setProperty("http.keepAlive", "false");

, но безуспешно.Я все еще застрял с fileNotFoundException.Я пытался поймать код ответа с веб-страницы, и он говорит 404 ..?!

Странно, что если я жестко закодирую ссылку на файл для скачивания с любого другого сайта, он скачивает файл без каких-либо проблем.Поэтому, чтобы прояснить ситуацию, я щелкнул ссылку на переменную fileurl, но на следующем шаге я просто говорю fileurl = "somesite / somefile.ext", все идет гладко. Из веб-браузера я могу загрузить любой файл, который вызывает проблемы в моем приложении, поэтому яЯ запутался, где проблема ..

Любое предложение, пожалуйста ..?10q

Ответы [ 2 ]

4 голосов
/ 08 июля 2011

Оки .. после такого большого количества времени нет ответа на это .. :( Наконец, я нашел решение самостоятельно, поэтому я публикую здесь, потому что кто-то, надеюсь, найдет его использование ..

в URL язаметил много% 20, поэтому, прежде чем я использовал его, я кодирую его с помощью URI.encode (fileURL), как это описано на страницах android dev

и вуаля .. все было хорошо .. :)Спасибо всем за участие сообщества!;) Ура

0 голосов
/ 28 марта 2011

Сообщение об ошибке 404 или не найдено стандартный код ответа HTTP указывая, что клиент был в состоянии общаться с сервером, но сервер не смог найти что было просьба.

Так что это означает только одно - URL вашего файла указывал на несуществующий ресурс. Как это может быть возможно? Я не знаю. Используйте отладку / ведение журнала, чтобы узнать, где вы нарушаете URL.

...