2013-04-05 123 views
0

嘗試使用C#將POST HttpWebRequest發送到airframes.org以獲取飛機信息。這是我用於許多其他POST請求的代碼(與其他URL一起使用),但它/我無法使用ICAO24編號(A64294)加載airframes.org頁面。.NET HTTP POST方法 - Cookie 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); 

     } 
+0

您收到了什麼錯誤/回覆? – 2013-04-05 23:56:24

回答

0

注意,該網站有一個no-bots policy,這就是爲什麼你的請求將無法正常工作。

話雖這麼說,如果你仍然想請求的頁面,添加用戶代理字符串(這樣你的要求看起來像是從一個瀏覽器來)做的伎倆:

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

它通常是好主意,尊重網站的政策。以上代碼僅用於教育目的。

+0

謝謝,它完美的作品。我沒有注意到無人機的網站請求。我會聯繫該網站以獲得許可。 – user2250994 2013-04-06 20:52:52