我需要检测是否存在重定向。我的第一个想法是检查状态代码是否为301,但对于:
var link = "https://grnh.se/8dc368b82us?s=LinkedIn&source=LinkedIn";
var responseMessage = await httpClient.GetAsync(link);
responseMessage返回"OK",但在浏览器中,此链接返回301并重定向。
如果我不能依赖这个,那么我决定只比较请求URI和响应URI。
GetAsync返回一个Task<HttpResponseMessage>
,但HttpResponseMessage没有响应URI的属性。
https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0
System.Net.WebResponse包含响应URI的属性,但我可以在HttpClient中使用它吗?还是必须使用WebRequest来发送请求?
https://learn.microsoft.com/en-us/dotnet/api/system.net.webresponse?view=net-5.0
有更好的方法吗?
注意:这将扫描数百万个链接,因此我更喜欢实例化一个HttpClient。Microsoft建议使用HttpClient而不是WebRequest:https://learn.microsoft.com/en-us/dotnet/api/system.net.webresponse?view=net-5.0