简体   繁体   English

如何检查 302 响应? 网络请求

[英]How do i check for a 302 response? WebRequest

Using WebRequest I want to know if I get a使用WebRequest我想知道我是否得到

"302 Moved Temporarily" 《302临时搬家》

response instead of automatically get the new url.响应而不是自动获取新的 url。

If you want to detect a redirect response, instead of following it automatically create the WebRequest and set the AllowAutoRedirect property to false :如果你想检测重定向响应,而不是跟随它自动创建WebRequest并将AllowAutoRedirect属性设置为false

HttpWebRequest request = WebRequest.Create(someUrl) as HttpWebRequest;
request.AllowAutoRedirect = false;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
if (response.StatusCode == HttpStatusCode.Redirect || 
    response.StatusCode == HttpStatusCode.MovedPermanently)
{
    // Do something here...
    string newUrl = response.Headers["Location"];
}

Like so:像这样:

HttpWebResponse response;
int code = (int) response.StatusCode;

The code should be代码应该是

HttpStatusCode.TemporaryRedirect

VB Net Code VB网络代码

Function GetRealUrl(someUrl As String) As String
        Dim req As HttpWebRequest = TryCast(WebRequest.Create(someUrl), HttpWebRequest)
        req.AllowAutoRedirect = False
        Dim response As HttpWebResponse = TryCast(req.GetResponse(), HttpWebResponse)
        If response.StatusCode = HttpStatusCode.Redirect OrElse response.StatusCode = HttpStatusCode.MovedPermanently Then
            ' Do something...
            Dim newUrl As String = response.Headers("Location")
            getrealurl = newUrl
        Else
            getrealurl = someUrl
        End If
End Function

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM