Post的数据需要使用Uri.EscapeDataString格式化,如果提交的数据包含中文,一定要进行这一步操作,否则会出错。
string formatString = "__VIEWSTATE={0}&__EVENTVALIDATION={1}&DropDownListFuelType={2}&TextBoxPostCode={3}&ButtonSearchPostcode=Search";
string postString = string.Format(formatString, viewState, eventValidation, fuelType, postCode);
就是组成Post的内存,所有内容来自于HttpFox的分析,见图3,需要什么组成什么。
然后再使用HttpWebRequest和HttpWebResponse提交,得到返回结果,这个结果包含了我们需要的价格信息。
分析HTML并显示结果
得到结果后,需要分析HTML并把我们需要的信息显示出来,在这一例子里,使用简单的字符串分析,从LabelResult里得到价格信息。
int i = srcString.IndexOf("Price=[");
int j = srcString.IndexOf("</span>");
labelPrice.Text = srcString.Substring(i, j - i);
这里只是一个简单的例子,在实际运用中可以使用正则表达来分析,或者使用HTML分析器来解释。
到目前为止已经讲述了一个简单的HttpWebRequest运用。源代码见下面。运行该代码,需要修改IP地址,这里hardcode了Server的地址。