Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

How to get 302 redirected url from an existing url in asp.net c#

Posted on 2013-01-07
5
Medium Priority
?
741 Views
Last Modified: 2013-01-24
how can we get the 302 redirected url from an old url in asp.net c# e.g. i have a url below
http://www.scotland.gov.uk/Publications/1997/01/10593
and its redirecting to http://www.scotland.gov.uk/Publications/1997/01/10593/File-1 and I need the new urls from a list of existing urls.
0
Comment
Question by:mmalik15
  • 3
  • 2
5 Comments
 
LVL 75

Accepted Solution

by:
käµfm³d   👽 earned 2000 total points
ID: 38750603
You can do the following:

using System.Net;

namespace ConsoleApplication48
{
    class Program
    {
        static void Main(string[] args)
        {
            HttpWebRequest request = HttpWebRequest.Create("http://www.scotland.gov.uk/Publications/1997/01/10593") as HttpWebRequest;
            HttpWebResponse response;
            string redirectedUrl = null;

            request.Method = "GET";
            response = request.GetResponse() as HttpWebResponse;

            if (response.StatusCode == HttpStatusCode.Found)
            {
                redirectedUrl = response.Headers["Location"];
            }
        }
    }
}

Open in new window

0
 

Author Comment

by:mmalik15
ID: 38755582
thanks for the comment kaufmed.

I have slightly altered the code. response.StatusCode is always 'OK' even when there is a redirect. I m comparing the response.ResponseUri with the original URL and its seems to be working though for only initial two requests but starts timing out then. I have a list of 13000 urls to test in a loop and wondering if that is possible. My code as below

 class Program
    {
        static void Main(string[] args)
        {
             string line;
            // Read the file and display it line by line.
            System.IO.StreamReader file =   new System.IO.StreamReader(@"C:\Users\MehtabM\Documents\URIFiles\ScotGov1.txt");

            List<string> href = new List<string>();

            while ((line = file.ReadLine()) != null)
            {
              href.Add(line);
            }

            file.Close();

            HttpWebRequest request; 
            HttpWebResponse response;
            

            foreach(string item in href)
            {
                request=HttpWebRequest.Create(item) as HttpWebRequest;
                request.Method = "GET";
                request.ContentType = "text/xml";
                response = request.GetResponse() as HttpWebResponse;


                if (response.ResponseUri.ToString() != item)
                {
                    item.Replace(item, response.ResponseUri.ToString());
                }
                response = null;

            }

           


        }
    }

Open in new window

0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 38761874
If this is a list of URLs that all point to the same host, then it could be that the server is blocking your connections because you are hitting it with too many requests in a short period of time. You might try inserting a delay between each call.

As to the "response.StatusCode is always 'OK'" I'm not sure. The one I tested in the example returned HttpStatusCode.Found. If your method works, then it should suffice  : )
0
 

Author Comment

by:mmalik15
ID: 38813627
thanks again kaufmed for the help.

If I change the  request.Method = "HEAD" This way we will not load whole page. Server only returns the headers and does not block subsequent requests.
0
 

Author Closing Comment

by:mmalik15
ID: 38813645
Excellent
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
Hello there! As a developer I have modified and refactored the unit tests which was written by fellow developers in the past. On the course, I have gone through various misconceptions and technical challenges when it comes to implementation. I would…
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Suggested Courses

971 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