这是我用Fiddler得到的:“
POST /webroot/restricted/oddsdisplay/Main2DataFrame.aspx HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Referer: http://../webroot/restricted/oddsdisplay/live.aspx?sportid=2
Accept-Language: en-us
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Connection: Keep-Alive
Content-Length: 42
Host: 6rf177956f1r.sbobet2.com
Pragma: no-cache
Cookie:
ASP.NET_SessionId=k2t54v23bojsks455vz44n55;
AWSUSER_ID=awsuser_id1228467703046r9474synid=-1&sportid=2&oddsStyle=&dt=1&scope=2”我试着用下面的代码来请求这个页面http://../webroot/restricted/oddsdisplay/Main2DataFrame.aspx?synid=-1&sportid=2&oddsStyle=&dt=1&scope=2,以得到它的数据
但是我得到的是这个页面的数据http://../webroot/restricted/oddsdisplay/Main2DataFrame.aspx
请高手们提点
Uri strUrl = new Uri(txtURL.Text.Trim() == "" ? "http://../webroot/restricted/oddsdisplay/Main2DataFrame.aspx?synid=-1&sportid=2&oddsStyle=&dt=1&scope=2" : txtURL.Text.Trim(),true);
#region 创建httpWebRequest对象
WebRequest webRequest = WebRequest.Create(strUrl);
HttpWebRequest httpRequest = webRequest as HttpWebRequest;
if (httpRequest == null)
{
throw new ApplicationException(string.Format("Invalid url string: {0}", strUrl));
}
#endregion #region post内容
//ASCIIEncoding encoding = new ASCIIEncoding();
//string postData = "";
//byte[] data = encoding.GetBytes(postData);
//httpRequest.Method = "POST";
//httpRequest.ContentLength = data.Length;
//Stream newStream = webRequest.GetRequestStream();
//newStream.Write(data, 0, data.Length);
//newStream.Close();
//encoding.
#endregion
#region 填充httpWebRequest的基本信息 httpRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; httpRequest.ContentType = "application/x-www-form-urlencoded";
CookieContainer cookieCon = new CookieContainer();
cookieCon.Add(strUrl, new Cookie("AWSUSER_ID", (txtUserID.Text.Trim() == "" ? "awsuser_id1228467703046r9474" : txtUserID.Text.Trim())));
cookieCon.Add(strUrl, new Cookie("AWSSESSION_ID", (txtSessionID.Text.Trim() == "" ? "awssession_id1228467703046r9474" : txtSessionID.Text.Trim())));
cookieCon.Add(strUrl, new Cookie("ASP.NET_SessionId", (txtASPSessionID.Text.Trim() == "" ? "k2t54v23bojsks455vz44n55" : txtASPSessionID.Text.Trim()))); httpRequest.CookieContainer = cookieCon; #endregion #region 发送post请求到服务器并读取服务器返回信息
Stream responseStream = httpRequest.GetResponse().GetResponseStream();
#endregion #region 读取服务器返回信息 string stringResponse = string.Empty; using (StreamReader responseReader = new StreamReader(responseStream))
{
stringResponse = responseReader.ReadToEnd();
} responseStream.Close(); #endregion txtMsg.Text = stringResponse;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
POST /webroot/restricted/oddsdisplay/Main2DataFrame.aspx HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Referer: http://../webroot/restricted/oddsdisplay/live.aspx?sportid=2
Accept-Language: en-us
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Connection: Keep-Alive
Content-Length: 42
Host: 6rf177956f1r.sbobet2.com
Pragma: no-cache
Cookie:
ASP.NET_SessionId=k2t54v23bojsks455vz44n55;
AWSUSER_ID=awsuser_id1228467703046r9474synid=-1&sportid=2&oddsStyle=&dt=1&scope=2”我试着用下面的代码来请求这个页面http://../webroot/restricted/oddsdisplay/Main2DataFrame.aspx?synid=-1&sportid=2&oddsStyle=&dt=1&scope=2,以得到它的数据
但是我得到的是这个页面的数据http://../webroot/restricted/oddsdisplay/Main2DataFrame.aspx
请高手们提点
Uri strUrl = new Uri(txtURL.Text.Trim() == "" ? "http://../webroot/restricted/oddsdisplay/Main2DataFrame.aspx?synid=-1&sportid=2&oddsStyle=&dt=1&scope=2" : txtURL.Text.Trim(),true);
#region 创建httpWebRequest对象
WebRequest webRequest = WebRequest.Create(strUrl);
HttpWebRequest httpRequest = webRequest as HttpWebRequest;
if (httpRequest == null)
{
throw new ApplicationException(string.Format("Invalid url string: {0}", strUrl));
}
#endregion #region post内容
//ASCIIEncoding encoding = new ASCIIEncoding();
//string postData = "";
//byte[] data = encoding.GetBytes(postData);
//httpRequest.Method = "POST";
//httpRequest.ContentLength = data.Length;
//Stream newStream = webRequest.GetRequestStream();
//newStream.Write(data, 0, data.Length);
//newStream.Close();
//encoding.
#endregion
#region 填充httpWebRequest的基本信息 httpRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; httpRequest.ContentType = "application/x-www-form-urlencoded";
CookieContainer cookieCon = new CookieContainer();
cookieCon.Add(strUrl, new Cookie("AWSUSER_ID", (txtUserID.Text.Trim() == "" ? "awsuser_id1228467703046r9474" : txtUserID.Text.Trim())));
cookieCon.Add(strUrl, new Cookie("AWSSESSION_ID", (txtSessionID.Text.Trim() == "" ? "awssession_id1228467703046r9474" : txtSessionID.Text.Trim())));
cookieCon.Add(strUrl, new Cookie("ASP.NET_SessionId", (txtASPSessionID.Text.Trim() == "" ? "k2t54v23bojsks455vz44n55" : txtASPSessionID.Text.Trim()))); httpRequest.CookieContainer = cookieCon; #endregion #region 发送post请求到服务器并读取服务器返回信息
Stream responseStream = httpRequest.GetResponse().GetResponseStream();
#endregion #region 读取服务器返回信息 string stringResponse = string.Empty; using (StreamReader responseReader = new StreamReader(responseStream))
{
stringResponse = responseReader.ReadToEnd();
} responseStream.Close(); #endregion txtMsg.Text = stringResponse;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
你自己构造估计不行.
可能那个页面需要登陆.如果这样的话,先登陆取到Cookie放到Container里面去.
参照:
http://www.cnblogs.com/solo/archive/2008/07/31/1257517.html