How do i check for a 302 response? WebRequest

前端 未结 3 1994
忘掉有多难
忘掉有多难 2020-12-05 19:26

Using WebRequest I want to know if I get a

\"302 Moved Temporarily\"

response instead of automatically get the new

相关标签:
3条回答
  • 2020-12-05 19:54

    If you want to detect a redirect response, instead of following it automatically create the WebRequest and set the AllowAutoRedirect property to 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"];
    }
    
    0 讨论(0)
  • 2020-12-05 20:01

    Like so:

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

    The code should be

    HttpStatusCode.TemporaryRedirect
    
    0 讨论(0)
  • 2020-12-05 20:06

    VB Net Code

    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
    
    0 讨论(0)
提交回复
热议问题