-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 値の専門家ではありません。https://stackoverflow.com/a/702110/455904から UserAgent の上記の値を丁寧に取得しました

于 2012-05-22T12:49:19.450 に答える