[英]C# HTTP programming
我想構建一個可以處理某些html表單的軟件,該軟件將是一種可以自動處理我網站上的某些表單的bot。
有誰可以給我一些基本的步驟來完成這項工作...任何教程,示例,書籍或任何可以幫助我的東西。
你們中的一些人可以使用POST方法發布有效的代碼嗎?
查看如何:使用WebRequest類發送數據 。 它提供了一個示例,說明如何使用HttpWebRequest類創建一個頁面發布到另一個頁面。
填寫表格...
擴展David和JP的答案:
假設您正在使用內容不熟悉的表單,則可能...
如果表單的結構是事先已知的,那么您真的可以從#4開始。
(未經測試的)示例(我的XPath不好,所以語法幾乎肯定不太正確):
HttpWebRequest request;
HttpWebResponse response;
XmlDocument xml = new XmlDocument();
string form_url = "http://...."; // you supply this
string form_submit_url;
XmlNodeList element_nodes;
XmlElement form_element;
StringBuilder query_string = new StringBuilder();
// #1
request = (HttpWebRequest)WebRequest.Create(form_url));
response = (HttpWebResponse)request.GetResponse();
// #2
xml.Load(response.GetResponseStream());
// #3a
form_element = xml.selectSingleNode("form[@name='formname']");
form_submit_url = form_element.GetAttribute("action");
// #3b
element_nodes = form_element.SelectNodes("input,select,textarea", nsmgr)
// #4
foreach (XmlNode input_element in element_nodes) {
if (query_string.length > 0) { query_string.Append("&"); }
// MyFormElementValue() is a function/value you need to provide/define.
query_string.Append(input_element.GetAttribute("name") + "=" + MyFormElementValue(input_element.GetAttribute("name"));
}
// #5
// This is a GET request, you can figure out POST as needed, and deduce the submission type via the <form> element's attribute.
request = (HttpWebRequest)WebRequest.Create(form_submit_url + "?" + query_string.ToString()));
參考文獻:
如果您不想走HttpWebRequest路線,我建議您使用WatiN 。 使IE或Firefox自動化非常容易,而不必擔心HTTP請求的內部。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.