NET Core(FtpWebRequest)如何通过鱿鱼代理通过FTP提取文件?

根据https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest.proxy?view=netcore-3.1 FtpWebRequest,不支持.NET Core代理。有其他选择吗?

我需要通过具有代理身份验证(NTLM)的某些鱿鱼代理(即HTTP上的FTP)访问FTP文件。

这是示例代码:

FtpWebRequest request = (FtpWebRequest) WebRequest.Create("ftp://ftp.ubuntu.com/");
var proxy = new WebProxy("my.squid.host",8080);
proxy.Credentials = new NetworkCredential("squid_user","squid_pass");
request.Proxy = proxy;
webresponse response = request.GetResponse();

var result = new StreamReader(response.GetResponseStream()).ReadToEnd();
Console.WriteLine(result);

如果将这段代码中的鱿鱼主机/用户/密码替换为您的鱿鱼主机/用户/密码,您将看到此csproj文件可以正常工作

<Project Sdk="microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net472</TargetFramework>
      </PropertyGroup>
</Project>

但它不再适用于.NET Core:

<Project Sdk="microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
      </PropertyGroup>
</Project>
A19900919woaijisuanj 回答:NET Core(FtpWebRequest)如何通过鱿鱼代理通过FTP提取文件?

.NET框架中除FtpWebRequest外没有其他FTP实现。并且FtpWebRequest本身已被弃用,不会得到改善。您必须使用第三方FTP客户端库。

请参阅:


通常,您可以使用FluentFTP my WinSCP .NET assembly

尽管它们都不支持NTLM身份验证(稍后添加的要求)。我不知道其他任何免费使用的.NET FTP库。

本文链接:https://www.f2er.com/2706506.html

大家都在问