日期:2014-05-18  浏览次数:21093 次

C# 向web发送请求
有这么一个网站http://gaokao.chsi.com.cn/zsjh/
在表格中的“招生专业(北京)”下面有“43”,点击此“43”后会出现验证码,输入验证码可以进入查看

我现在想用C#,模拟,点击“43”后获取验证码图片,这个过程

想请问各位大虾,这个该如何实现。

===================================================
以下到目前为止,我的研究结果
通过抓包,我已经看到了“GET”请求的数据,想用WebRequest来模拟这个“GET”请求,发现怎么都不行。

主要问题有这么几个:
1、Request URI:/ValidatorIMG.JPG?id=8482.031032908708
这个不知道该怎么设置

2、[tunecated] Cookie:JSESSIONID=396C8439833102EFAF868D6297A9D8FD.web25_8081; __utma=142379556.1006189020.1343613376.1343613376.1343651790.2; __utmb=142379556.2.10.1343651790; __utmc=142379556; __utmz=142379556.1343613376.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

这个Cookie不知道该怎么设置,特别是JSESSIONID不知道是怎么来的。


麻烦各位帮我一下,分数不够可以追加

------解决方案--------------------
HttpWebRequest webRequest = HttpWebRequest.Create("http://xxxxx/ValidatorIMG.JPG?id=8482.031032908708") as HttpWebRequest;
webRequest.Method = "GET";
HttpRequestCachePolicy cPolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
webRequest.CachePolicy = cPolicy;
webRequest.Pipelined = false;
webRequest.KeepAlive = false;
webRequest.AllowAutoRedirect = true;
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1";
webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
webRequest.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
webRequest.Headers.Add("Cookie", "JSESSIONID=396C8439833102EFAF868D6297A9D8FD.web25_8081; __utma=142379556.1006189020.1343613376.1343613376.1343651790.2; __utmb=142379556.2.10.1343651790; __utmc=142379556; __utmz=142379556.1343613376.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)");
HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse;

JSESSIONID是系统自己加的,用来标识不同的客户端