2012-06-20 86 views
0

我正在使用瀏覽器中的任務自動執行程序,例如輸入文本,點擊等,現在在Visual Studio 2010中使用網絡瀏覽器工具時,所有工作都正常。從網絡瀏覽器到網絡請求

我想知道的是我應該如何轉換所有這些,以便我可以使用發送請求而不是瀏覽器?如果你要使用多線程,我聽說它效率更高,效果更好,但是我有很多已經可以工作的代碼,並且不知道我應該如何實現這一點,而不是扼殺它。

回答

1

您將使用HttpWebRequest/HttpWebResponse來製作HTTP請求到服務器,然後使用HttpWebResponse.GetResponseStream()檢索文檔正文。然後使用HTML框架(如HtmlAgilityPack)解析HTML並獲取文檔的DOM圖形,然後可以遍歷DOM以提取數據並創建請求主體,以便將任何後續請求發送回服務器。

如果響應文檔是有效的XML(例如XHTML1.1),那麼您可以通過將其加載到System.Xml.XmlDocument中來節省一些時間,但實際上HTML文檔經常包含錯誤和框架,比如HtmlAgilityPack更容易理解分析器錯誤比System.Xml。

就多線程而言,您可以在每個HttpWebRequests(每個請求與其自己的線程相關聯,或使用Async方法)下引發多個HttpWebRequests。請注意,您需要調整一些設置以覆蓋.NET網絡庫中的「每個主機的兩個併發HTTP請求」策略。