昨天研究如何下载一个网站某项活动的投票页面(有作弊嫌疑,不要声张)。
一般在.net,可以通过如下代码下载指定url链接返回的数据:
int nSize = 1024*20;
byte[] buf=new byte[nSize];
HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(strUrl);
loHttp.Method = "get";
HttpWebResponse myHttpWebResponse=(HttpWebResponse)loHttp.GetResponse();
myHttpWebResponse.GetResponseStream().Read(buf,0,nSize);
myHttpWebResponse.Close();
string strResult = Encoding.GetEncoding("gb2312").GetString(buf);
可是当我用上述方法下载该页面时,遇到一点障碍,我所得到的strResult的内容是
What do you want?
而不是通过浏览器所能看到的页面内容。看来人家防了一手。用浏览器可以下载并查看页面,
可是通过.net的程序却不行,看来服务器端对客户端的类型做了校验。查阅MSDN,发现了如下
内容:
-------------------------------------------------
HOWTO: Determine Browser Type in Server-Side Script Without the BrowserType Object
SUMMARY
There are two common methods in server