17

I want WebRequestto know if I get a

「302一時移動」

新しい URL を自動的に取得する代わりに、応答します。

4

3 に答える 3

34

リダイレクト応答を検出する場合は、それに従う代わりに、自動的に を作成し、プロパティを にWebRequest設定します。AllowAutoRedirectfalse

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"];
}
于 2009-09-08T00:26:44.040 に答える
3

そのようです:

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

コードは

HttpStatusCode.TemporaryRedirect
于 2009-09-08T00:10:51.853 に答える
1

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
于 2013-12-13T16:28:06.010 に答える