我如何检查一个302回应?的WebRequest
-
21-09-2019 - |
题
使用WebRequest
我想知道如果我得到一个
“302临时移动”
响应,而不是自动获取新的URL。
解决方案
如果您要检测的,而不是跟随它自动创建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"];
}
其他提示
像这样:
HttpWebResponse response;
int code = (int) response.StatusCode;
代码应
HttpStatusCode.TemporaryRedirect
VB .NET代码
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
不隶属于 StackOverflow