【问题标题】:File Transfer Protocol and an AS400文件传输协议和 AS400
【发布时间】:2014-10-23 14:14:37
【问题描述】:

我目前收到以下错误:

远程服务器返回错误:(501) 参数或参数中的语法错误。

我已经对服务器进行了物理检查,并且该文件确实存在,如果我打开命令提示符并键入以下代码,它就可以工作:

ftp
open 192.168.1.2
cd /Images
get S12345.jpeg

这可以正常工作,但是一旦我尝试通过此代码进行连接:

private bool DownloadPod(string server)
{
     string[] allocate = server.Split('\\');
     string ftp = @"ftp://192.168.1.2/Images/" + allocate.Last();
     Uri uri = new Uri(ftp);

     // The code path for uri: ftp://192.168.1.2/Images/S12345.jpeg
     var request = WebRequest.Create(uri) as FtpWebRequest;
     if(request != null)
     {
           request.Method = WebRequestMethods.Ftp.DownloadFile;
           // Left credentials off for security.
           request.Credentials = new NetworkCredential(@"", @"");
           // The line that triggers the error (response)
           using(FtpWebResponse response = request.GetResponse() as FtpWebResponse)
                using(Stream stream = response.GetResponseStream())
                     using(StreamReader reader = new StreamReader(stream))
                     {
                           reader.ReadToEnd();
                           return true;
                     }
      }
     return false;
}

有人可以向我解释为什么这不起作用吗?

  • 凭据在命令提示符中起作用
  • 服务器上的物理文件
  • 可以从命令提示符下载

根据 MSDN:

要获取 FtpWebRequest 的实例,请使用 Create 方法。你可以 还使用 WebClient 类上传和下载信息 FTP 服务器。使用这些方法中的任何一种,当您指定一个 使用 FTP 方案的网络资源(例如, "ftp://contoso.com") FtpWebRequest 类提供了以下功能 以编程方式与 FTP 服务器交互。

URI 可以是相对的或绝对的。如果 URI 的格式为 “ftp://contoso.com/%2fpath”(%2f 是转义的 '/'),则 URI 为 绝对的,当前目录是/path。但是,如果 URI 是 形式为“ftp://contoso.com/path”,首先是 .NET Framework 日志 进入 FTP 服务器(使用由服务器设置的用户名和密码) Credentials 属性),则当前目录设置为 /路径。

AS400 期望数据以何种方式通过。

【问题讨论】:

  • 您在浏览器中尝试过该网址吗?在 ftp 客户端中输入登录名、cd 和 get 命令与通过代码生成的任何 url 输入不同。

标签: c# ftp


【解决方案1】:

在某些情况下,/ 字符无效或不被接受。

AS400 可能需要使用/%2F 进行更改,这将正确切换 AS400 上的目录。例如:

ftp://192.168.1.2/%2FImages/%2FS12345.jpeg

通过使用/%2F,它允许它在目录之间移动。

更多详情请见here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多