记录一下我用过的模拟表单提交的一个小例子,其实模拟表单提交原理很简单,就是构建Form表单中要提交的元素,通过Web
Client发送到(Post方法)目的页面即可。
1、构建要提交的数据信息(NameValueCollection)
/// <summary>
/// 创建投票信息
/// </summary>
/// <returns></returns>
private NameValueCollection CreateValuesToVote()
{
NameValueCollection valuesToVote = new NameValueCollection();
int beginValue = 3628;
for (int i = 1; i <= 38; i++)
{
valuesToVote.Add(i.ToString(), beginValue.ToString());
beginValue += 2;
}
return valuesToVote;
}
2、提交数据,代码如下
WebClient client = new WebClient();
byte[] byRemoteInfo = client.UploadValues("http://work.smeqd.gov.cn/lbtoupiao/mppxok.asp", "POST", valuesToVote);
string strResult = Encoding.Default.GetString(byRemoteInfo);
if (strResult.Contains("投票成功"))
{
//do something
}
webclient还有其他的一些方法可以提交数据UploadData,UploadString,UploadFile等,可以提交数据,同样...还可以下载数据,DownloadData,DownloadString, DownloadFile和对应的一些异步方法,Upload和Download方法都提供ProgressChanged事件。