如何从 System.Net.WebException 获取 ftp 错误
How to get ftp error from System.Net.WebException
如何在处理 System.Net.WebException 时获取 ftp 服务器错误?
状态字段仅报告登录失败等大多数错误的协议错误。
上下文,以下客户端代码为例:
try {
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://mars/test.htm");
request.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
Console.WriteLine(reader.ReadToEnd());
reader.Close();
response.Close();
}
catch (WebException ex)
{
//get the server error
...
}
响应实际上是 FtpWebResponse
。通过将 ex.Response
转换为 FtpWebResponse
,我可以通过 StatusCode
.
访问服务器错误
示例:
catch (WebException ex)
{
var ftpResponse = ex.Response as FtpWebResponse;
log.Error(ftpResponse.StatusCode); //as enumerate
log.Error((int)ftpResponse.StatusCode); //as integer
}
如何在处理 System.Net.WebException 时获取 ftp 服务器错误?
状态字段仅报告登录失败等大多数错误的协议错误。
上下文,以下客户端代码为例:
try {
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://mars/test.htm");
request.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
Console.WriteLine(reader.ReadToEnd());
reader.Close();
response.Close();
}
catch (WebException ex)
{
//get the server error
...
}
响应实际上是 FtpWebResponse
。通过将 ex.Response
转换为 FtpWebResponse
,我可以通过 StatusCode
.
示例:
catch (WebException ex)
{
var ftpResponse = ex.Response as FtpWebResponse;
log.Error(ftpResponse.StatusCode); //as enumerate
log.Error((int)ftpResponse.StatusCode); //as integer
}