0
我在密码中使用带有特殊字符“§”的FtpWebRequest时出现问题。 的代码看起来是这样的:C#FtpWebRequest - 密码中的特殊字符“§”
FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://ftphost"));
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.UsePassive = true;
reqFTP.EnableSsl = false;
reqFTP.Timeout = 60000;
reqFTP.UseBinary = false;
reqFTP.Credentials = new NetworkCredential("user", "pa§");
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
的的GetResponse() - 方法失败, “530用户无法登录”。 使用FileZilla登录工作。
我跟踪网络流量使用Wireshark,并注意到以下几点:
- FileZilla的转换密码“啪\ 302 \ 247”,尝试登录并失败。之后,FileZilla重新尝试连接成功的密码“pa \ 247”。
- FtpWebRequest将密码转换为“pa \ 302 \ 247”,尝试登录并失败,并引发异常。
如何强制FtpWebRequest将密码转换为“pa \ 247”而不是“pa \ 302 \ 247”?
谢谢。
谢谢。您提供的代码会引发此异常: “InvalidOperationException:此集合包含响应标头并且不能包含指定的请求标头。” 我试图添加标头: reqFTP.Headers.Add(“ContentType:text/plain; charset = \”ISO-8859-1 \“”); 哪些没有抛出任何异常。 但它没有解决问题。 – k3flo