我想,以确定是否对http://www.accreditedqualifications.org.uk 形式存在资格:C#检测页面重定向
http://www.accreditedqualifications.org.uk/qualification/50084811.seo.aspx
50084811进行资格目的由最终用户输入。
如果他们输入无效的例如
http://www.accreditedqualifications.org.uk/qualification/50084911.seo.aspx
他们将被重定向到一个错误页面(不正确的HTTP头,据我可以看到)。有没有办法在C#中检测重定向。我希望能够检测到http头中的重定向(认为它会发出2)或类似的反对必须下载整个页面。这可能会发生很多,所以我想尽量减少流量。
编辑
用它来看看头看起来像两个是一个无效页面发出:
发现这个http://stackoverflow.com/questions/924679/c-how-can-i-check-if-a-url-exists-is-valid我认为它沿着正确的路线,但因为是该网站不发出404或类似的不工作。我会继续尝试。 – PeteT 2010-03-29 15:07:56
@ petebob796:使用'WebClient'可能无法给您足够的控制权。特别是,它不允许你关闭自动重定向(据我所知)。使用HttpWebRequest并查看响应代码。 301和302是正常的重定向响应码。 – 2010-03-29 15:25:03
感谢现在使用HttpWebRequest和HttpWebResponse随request.AllowAutoRedirect = false;和request.Method =“HEAD”;. 对于其他读者,我被StatusCode抓住了一秒钟,它返回“OK”,“NOT FOUND”...但它是一个枚举,可以转换为实际的错误301,302 ... – PeteT 2010-03-29 15:57:10