2013-03-19 2 views
0

Я не могу загрузить файл с FTP-сервера с помощью URLConnection, имеющих пробелы в погладитьНевозможно загрузить файл с FTP-сервера с помощью URLConnection, имеющих пробелы в пути

String s = "ftp://username:[email protected]:21/AAB BBC/hhhh 0001.jpg"; 

URL и = новый URL (s); URLConnection uc = u.openConnection(); BufferedOutputStream bos = new BufferedOutputStream (uc.getOutputStream());

Dont want FTP client solution.

Использование файла URLencoder get 550 error не найден.

Спасибо, Gaurav

ответ

0

Вы используете Apache Commons библиотеки? Если это так, используйте этот код

try { 
    FileOutputStream desFileStream = new FileOutputStream(desFilePath);; 
    status = FTP_object.retrieveFile(srcFilePath, desFileStream); 
    desFileStream.close(); 

    return status; 
} catch (Exception e) { 
    Log.d(TAG, "download failed"); 
} 
0

Вы не должны иметь места в самой вашей URL в RFC1738 разделе 2.2 запустить его с помощью метода URL Encode кодировать его:

String s = "ftp://username:[email protected]:21/AAB BBC/hhhh 0001.jpg"; 
String encodedUrl = URLEncoder.encode(s,"UTF-8"); 

Я понимаю, что вы сказали, что вы уже делали кодировку, но это привело к ошибке 550. Я не видел кодировку, поэтому просто упоминаю, что это необходимо.

Я бы попробовал это в браузере и посмотрел, сможете ли вы с ним добраться. Я также выкинул бы URL-адрес, который он использует, и попробуйте сделать это из браузера (или wget, curl, независимо от того, что вам удобно). «550» указан как проблема «разрешения», а не файл не найден, поэтому я немного удивлен этим, но это может быть короткий код и выходить как ошибка, чтобы люди не выкалывали вокруг тестирования пользователя/пароля комбинации. Сложно сказать.

Другой вопрос, который у меня для вас, заключается в том, что вы упоминаете, что не хотите решения клиента, но вы, кажется, пишете клиент, а не сервер. Вы собираетесь на порт 21, который является FTP-портом по умолчанию для сервера.

Я бы попробовал различные комбинации кодировки и посмотрел, может быть, вы не кодируете все ... вы должны закодировать URL-адрес. Есть ли в пароле какие-то напуганные символы?

Тестирование в браузере напрямую даст вам много информации.

 Смежные вопросы

  • Нет связанных вопросов^_^