Tôi có một bảng trong cơ sở dữ liệu chứa URL của một số trang web. Tôi phải mở các URL đó và xác minh một số liên kết trên các trang đó. Vấn đề là một số URL được chuyển hướng đến các URL khác. Logic của tôi không thành công cho các URL như vậy.Nhận URL được chuyển hướng từ URL gốc
Có cách nào để tôi có thể chuyển chuỗi URL ban đầu của mình và nhận lại URL được chuyển hướng không?
Ví dụ: Tôi đang cố gắng với URL này: http://individual.troweprice.com/public/Retail/xStaticFiles/FormsAndLiterature/CollegeSavings/trp529Disclosure.pdf
Nó được chuyển hướng đến này một: http://individual.troweprice.com/staticFiles/Retail/Shared/PDFs/trp529Disclosure.pdf
Tôi cố gắng để sử dụng đoạn mã sau:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Uris);
req.Proxy = proxy;
req.Method = "HEAD";
req.AllowAutoRedirect = false;
HttpWebResponse myResp = (HttpWebResponse)req.GetResponse();
if (myResp.StatusCode == HttpStatusCode.Redirect)
{
MessageBox.Show("redirected to:" + myResp.GetResponseHeader("Location"));
}
Khi tôi thực hiện mã ở trên nó mang lại cho tôi HttpStatusCodeOk
. Tôi ngạc nhiên vì sao nó không coi đó là một sự chuyển hướng. Nếu tôi mở liên kết trong Internet Explorer thì nó sẽ chuyển hướng đến một URL khác và mở tệp PDF.
Ai đó có thể giúp tôi hiểu tại sao nó không hoạt động đúng với URL ví dụ không?
Nhân tiện, tôi đã kiểm tra bằng URL của Hotmail (http://www.hotmail.com) và nó trả về chính xác URL được chuyển hướng.
Cảm ơn,
Xóa req.AllowAutoRedirect = false; không giúp đỡ – user85594
Tôi hiểu điểm chuyển hướng javascript của bạn, nhưng khi tôi sử dụng myResp.ResponseUri.AbsoluteUri, nó cung cấp cho tôi URL gốc thay vì chuyển hướng. Vì vậy, có cách nào khác để nhận URL được chuyển hướng không? – user85594
URL được đề cập sẽ luôn trả về cùng một URL vì URL không chuyển hướng. Chuyển hướng * rõ ràng * chỉ là Javascript và bạn sẽ phải đánh giá Javascript để phát hiện nó. –