[英]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.