-2

这是我通过“HttpWebRequest”和“HttpWebResponse”从浏览器获取url的代码。

{
    string link="http://g.microsoftonline.com/0BXPS00id-id/1250";

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(link);

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    string responseurl = response.ResponseUri.ToString();

    Console.WriteLine(responseurl);
}

当我执行上面的代码时,url返回是

“https://mocp.microsoftonline.com/Site/Error.aspx?Err=NotSupported”

但是当我在浏览器中手动打开链接时,它会重定向到

“https://mocp.microsoftonline.com/Site/Support.aspx”

为什么 response.ResponseUri.ToString() 返回错误的 url?

你能为此提供解决方案吗?

4

1 回答 1

0

通过 request.UserAgent 属性,您可以充当受支持的浏览器。以下对我有用

string link = "http://g.microsoftonline.com/0BXPS00id-id/1250";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(link);
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

string responseurl = response.ResponseUri.ToString();
Console.WriteLine(responseurl)

我不是 UserAgent-value 方面的专家。我从https://stackoverflow.com/a/702110/455904慷慨地为 UserAgent 提供了上述值

于 2012-05-22T12:49:19.450 回答