3 回答

TA貢獻1862條經(jīng)驗 獲得超6個贊
您可以使用FtpWebRequest ; 但是,這是相當?shù)偷乃?。有一個更高級別的類WebClient,在許多情況下它需要更少的代碼。但是,默認情況下它不支持FTP / SSL。幸運的是,您可以WebClient通過注冊自己的前綴來使用FTP / SSL:
private void RegisterFtps()
{
WebRequest.RegisterPrefix("ftps", new FtpsWebRequestCreator());
}
private sealed class FtpsWebRequestCreator : IWebRequestCreate
{
public WebRequest Create(Uri uri)
{
FtpWebRequest webRequest = (FtpWebRequest)WebRequest.Create(uri.AbsoluteUri.Remove(3, 1)); // Removes the "s" in "ftps://".
webRequest.EnableSsl = true;
return webRequest;
}
}
完成此操作后,WebClient幾乎可以像平常一樣使用,除了您的URI以“ ftps://”而不是“ ftp://”開頭。一個警告是您必須指定該method參數(shù),因為將沒有默認值。例如
using (var webClient = new WebClient()) {
// Note here that the second parameter can't be null.
webClient.UploadFileAsync(uploadUri, WebRequestMethods.Ftp.UploadFile, fileName, state);
}

TA貢獻1811條經(jīng)驗 獲得超6個贊
要自動接受客戶端可能遇到的任何證書,此方法有效:ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
- 3 回答
- 0 關注
- 1439 瀏覽
添加回答
舉報