Solved

c# webresponse status

Posted on 2009-07-02
5
643 Views
Last Modified: 2012-05-07
Hello.  New to the Windows world and .NET programming.  Below is a snippet of code (pulled from the internet) that get's a listing of files from an FTP server.  The try/catch code check for the success/failure of the whole operation, but I'd like to get a status from the "WebResponse response = reqFTP.GetResponse();" line of code.  How can I get the status?

Thank you
FtpWebRequest reqFTP;
            try
            {
                reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/"));
                reqFTP.UseBinary = true;
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
                WebResponse response = reqFTP.GetResponse();
                
                StreamReader reader = new StreamReader(response.GetResponseStream());
 
                string line = reader.ReadLine();
                while (line != null)
                {
                    result.Append(line);
                    result.Append("\n");
                    line = reader.ReadLine();
                }
                // to remove the trailing '\n'
                result.Remove(result.ToString().LastIndexOf('\n'), 1);
                reader.Close();
                response.Close();
                return result.ToString().Split('\n');
            }
            catch (Exception ex)
            {
                downloadFiles = null;
                Console.WriteLine("Error {0}encountered while getting file list", ex);
                Console.ReadLine();
                return downloadFiles;
                
                
            }

Open in new window

0
Comment
Question by:racy
  • 3
  • 2
5 Comments
 
LVL 18

Assisted Solution

by:Gary Davis
Gary Davis earned 125 total points
ID: 24765191
You should be able to get the status from the response variable assuming it did not trap. A trap will occur in some situations like a bad Uri or a timeout, perhaps.
In addition, you could have additional "catch"es which will catch specific exceptions rather than the general "Exception" for additional reasons for the trap.
Gary Davis
0
 

Author Comment

by:racy
ID: 24765341
So are you saying to code like:

string myStatus = response.Status;

??  This is where I am getting hung up.  The response variable doesn't seem to have a "Status" method.
0
 

Author Comment

by:racy
ID: 24765408
According to MSDN, "GetResponse" sets the Status property of WebExceptionStatus.  This is what I am trying to get.
0
 

Author Comment

by:racy
ID: 24765555
I figured this one out.  Must something like:

catch (WebException e) {
.
.
.
}

I am such a newbie.  
0
 
LVL 18

Accepted Solution

by:
Gary Davis earned 125 total points
ID: 24766227
You can have these three all at once:
catch (HttpException e) {
.
}
catch (WebException e) {
.
}
catch (Exception e) {
.
}
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…

825 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question