我有以下方法返回Http status code
给定的Url
:
public static async void makeRequest(int row, string url)
{
string result;
Stopwatch sw = new Stopwatch(); sw.Start();
try
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = new HttpResponseMessage();
response = await client.GetAsync(url);
// dump contents of header
Console.WriteLine(response.Headers.ToString());
if (response.IsSuccessStatusCode)
{
result = ((int)response.StatusCode).ToString();
}
else
{
result = ((int)response.StatusCode).ToString();
}
}
}
catch (HttpRequestException hre)
{
result = "Server unreachable";
}
sw.Stop();
long time = sw.ElapsedTicks / (Stopwatch.Frequency / (1000L * 1000L));
requestComplete(row, url, result, time);
}
它适用于200
/404
等,但是在301
代码的情况下,我相信返回的结果是已经重定向的( 200
) 结果,而不是301
应该返回的实际结果,并且它会有一个包含重定向指向的标头。
我在其他 .Net Web 请求类中看到过类似的情况,并且将某种allowAutoRedirect
属性设置为 false 的技术。如果这是正确的路线,任何人都可以告诉我该HttpClient
课程的正确替代方案吗?
这篇文章有关于上述 allowAutoRedirect 概念的信息,我的意思是
否则,我怎样才能让这个方法返回301s
而不是200s
让我知道是真实的 Urls 301s
?