【问题标题】:.NET HTTP POST Method - Cookies AirFrames.org.NET HTTP POST 方法 - Cookies AirFrames.org
【发布时间】:2013-04-05 23:38:13
【问题描述】:

尝试使用 C# 将 HttpWebRequest POST 到 airframes.org 以获取飞机信息。这是我用于许多其他 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);

        }

【问题讨论】:

  • 您收到什么错误/响应?

标签: c# post cookies httpwebrequest


【解决方案1】:

请注意,该网站有一个no-bots policy,这就是您的请求不起作用的原因。

话虽如此,如果您仍然希望请求该页面,添加一个用户代理字符串(这样您的请求看起来像是来自浏览器)就可以了:

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

尊重网站的政策通常是个好主意。上面的代码仅用于教育目的。

【讨论】:

  • 谢谢,它运行良好。我没有注意到没有机器人的网站请求。我会联系网站以获得许可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2023-01-21
  • 2017-03-16
  • 2011-10-21
  • 1970-01-01
相关资源
最近更新 更多