我有一个方法,我使用已弃用的
WebClient
类将文件上传到 FTP Server
。
public async Task<BaseResponse<Void>> Handle(FTPUploadRequest request, CancellationToken cancellationToken)
{
using WebClient client = new()
{
Credentials = new NetworkCredential(configuration.FTP.User, configuration.FTP.Password.Decrypt())
};
static string BuildUri(FTPUploadRequest request, IOptionsSnapshot<Configuration> configuration)
=> $"ftp://{configuration.FTP.Server}/{request.DirectoryPath}/{request.FileName}";
client.UploadFile(
BuildUri(request, configuration),
WebRequestMethods.Ftp.UploadFile,
request.FilePath + "/" + request.FileName);
return await BaseResponse<Void>.Create(true);
}
WebClient
已过时,而不是 Unit-testable
。消息是:
SYSLIB0014 'WebClient.WebClient()' is obsolete: 'WebRequest, HttpWebRequest, ServicePoint, and WebClient are obsolete. Use HttpClient instead.'
所以我想注入
IHttpClientFactory
,这在过时的消息中也有说明。我可以轻松做到这一点,但是我应该如何上传文件呢?用 FTP Server
针对 multi-part-message
发帖?
我不知道,也无法在互联网上找到任何解决方案。
有什么想法吗?
你不知道。
HTTP 和 FTP 是完全不同的协议。
您想使用 FTP 客户端。