пытается FTP файл со специальным символом - PullRequest
4 голосов
/ 15 июня 2011

У меня есть код:

FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(url);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.UseBinary = true;   // Binary mode when downloading
request.Credentials = new NetworkCredential(user, password);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();

Я всегда получаю сообщение об ошибке: «Запрошенный URI недопустим для этой команды FTP».

Проблема в том, что URL содержит "#". Поскольку я не могу помешать людям создавать файлы такого типа, есть ли способ избежать специальных символов и при этом обработать файл?

Ответы [ 2 ]

6 голосов
/ 15 июня 2011

Заменить строку на "#" ->"%23"
Кодировки URL не должны содержать хэш, потому что:

Некоторые символы могут быть неправильно поняты в URL-адресах по разным причинам. Эти символы также всегда должны быть закодированы.

3 голосов
/ 15 июня 2011

Вы можете использовать HttpUtility.UrlEncode для кодирования специальных символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...