0

C# を使用して、航空機の情報を得るために airframes.org に HttpWebRequest を POST しようとしています。これは私が問題なく他の多くの POST リクエストに使用するコードです (他の URL で使用されます) が、ICAO24 番号 (A64294) を使用して airframes.org ページをロードできません。

        var cookies = new CookieContainer();
        ServicePointManager.Expect100Continue = false;

        var request = (HttpWebRequest)WebRequest.Create("http://www.airframes.org/");
        request.CookieContainer = cookies;
        request.Method = "POST";
        request.KeepAlive = true;

        request.ContentType = "application/x-www-form-urlencoded";
        using (var requestStream = request.GetRequestStream())
        using (var writer = new StreamWriter(requestStream))
        {
            writer.Write("reg=&selcal=&icao24=A64294&submit=submit");
        }

        using (var responseStream = request.GetResponse().GetResponseStream())
        using (var reader = new StreamReader(responseStream))
        {
            var result = reader.ReadToEnd();
            Console.WriteLine(result);

        }
4

1 に答える 1

0

このサイトにはボット禁止ポリシーがあるため、リクエストが機能しないことに注意してください。

そうは言っても、それでもページをリクエストしたい場合は、ユーザー エージェント文字列を追加すると (リクエストがブラウザから送信されたように見えます)、次のようになります。

request.UserAgent = "Mozilla/6.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1";

通常は、サイトのポリシーを尊重することをお勧めします。上記のコードは、単に教育目的のためのものです。

于 2013-04-06T00:57:53.183 に答える