Альтернатива реализации Uri.NET?

Я не могу придумать способ сделать это прямо сейчас, но я думаю, что ближайший вы можете получить что-то вроде:

  • создать новый пакет my-time, который зависит от [112 ]
  • реэкспорт ваших функций прокладок с комментариями, например

    import qualified Data.Time as Time
    {-# WARNING getCurrentTime "you should prefer getCurrentTimeMicroseconds" #-}
    getCurrentTime = Time.getCurrentTime
    
  • , зависит от my-time в ваших пакетах

очевидно, что это не дает вам способа принудительно импортировать Data.Time.getCurrentTime, а не , и еще менее удовлетворительно, когда код, который вы хотите подобрать, находится в Prelude или base. [ 1113]

8
задан Gordon Bell 10 September 2009 в 22:22
поделиться

3 ответа

Ну, проблема не состоит в том, что я не могу создать соединение FTP, но что URI не анализируется accoding к RFC 2396.

То, что я на самом деле намеревался сделать, должно было создать Фабрику, которая обеспечивает, реализации универсального интерфейса Передачи файлов (содержащий получают и помещают методы), на основе данного соединения URI. URI определяет протокол, информацию о пользователе, хост и путь, и любые свойства должны были быть переданы, должен быть передан через часть Запроса URI (такого как опция режима Passive для соединения FTP).

Однако это доказанное трудное использование реализации Uri.NET, потому что это, кажется, анализирует часть Запроса URI по-другому на основе схемы.

Таким образом, я надеялся, что кто-то знал обходное решение к этому, или альтернативы по-видимому поврежденной.NET реализация Uri. Было бы хорошо знать прежде, чем провести часы, реализовав мое собственное.

4
ответ дан 5 December 2019 в 19:03
поделиться

Необходимо использовать классы FtpWebRequest и FtpWebResponse, если у Вас нет определенной причины не к.

FtpWebRequest.fwr = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://uri"));
fwr.ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
fwr.ftpRequest.Credentials = new NetworkCredential("user", "pass");


FileInfo ff = new FileInfo("localpath");
byte[] fileContents = new byte[ff.Length];

using (FileStream fr = ff.OpenRead())
{
   fr.Read(fileContents, 0, Convert.ToInt32(ff.Length));
}

using (Stream writer = fwr.GetRequestStream())
{
   writer.Write(fileContents, 0, fileContents.Length);
}

FtpWebResponse frp = (FtpWebResponse)fwr.GetResponse();
Response.Write(frp.ftpResponse.StatusDescription); 

Ref1 Ref2

2
ответ дан 5 December 2019 в 19:03
поделиться

Необходимо использовать определенный класс для протокола FTP как FtpWebRequest, который имеет свойство Uri как RequestUri.

Необходимо искать в thoses классах синтаксический анализатор Uri, я думаю.

1
ответ дан 5 December 2019 в 19:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: