HttpWebRequest提交对方网站,有的页面成功,有的不成功。几天了,一直没搞定,请高手帮忙解决,非常感谢
因项目需要,需要采用HttpWebRequest将相关内容自动提交到对方系统
下面是我的提交方式
采用这种方式大部分页面是可以正常提交的,但是有几个页面总是会出错(其实也就是跳转到了他们的一个错误页),我获取的不是正常情况下应该获取的数据,而是他们的错误页的数据。
出错的几个页面,IE6是可以正常访问的
请帮忙分析是什么地方出了问题,还应该注意什么
下面是代码:
Encoding enc = System.Text.Encoding.GetEncoding("GB2312");
string sAction = "http://10.223.111.45/pms/exchange/save.so";
string sData = "readMark=null&eqType=01&appNo=101003941794&equipCateg=01&equipId=2010000001460677&assetNo=43410010000005268&chkGroup=&chkGroupName=&checkerNo=&checkerNoName=&chkDate=&chkConcCode=1&chkContent=";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sAction);
req.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
req.Headers["Accept-Encoding"] = "gzip, deflate";
req.Headers["Accept-Language"] = "zh-cn";
req.Headers["Cache-Control"] = "no-cache";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";
req.Referer = "http://10.223.111.45/pms/exchange/save.so";
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = new CookieContainer();
req.CookieContainer.Add(this.LoginCookie);//把前面登陆后获取的COOKIE加进来
byte[] PostData = System.Text.Encoding.ASCII.GetBytes(sData);
req.ContentLength = PostData.Length;
Stream tempStream = req.GetRequestStream();
tempStream.Write(PostData, 0, PostData.Length);
tempStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(), enc);
string sHtml = sr.ReadToEnd();
sr.Close();
res.Close();
下面是我的提交方式
采用这种方式大部分页面是可以正常提交的,但是有几个页面总是会出错(其实也就是跳转到了他们的一个错误页),我获取的不是正常情况下应该获取的数据,而是他们的错误页的数据。
出错的几个页面,IE6是可以正常访问的
请帮忙分析是什么地方出了问题,还应该注意什么
下面是代码:
Encoding enc = System.Text.Encoding.GetEncoding("GB2312");
string sAction = "http://10.223.111.45/pms/exchange/save.so";
string sData = "readMark=null&eqType=01&appNo=101003941794&equipCateg=01&equipId=2010000001460677&assetNo=43410010000005268&chkGroup=&chkGroupName=&checkerNo=&checkerNoName=&chkDate=&chkConcCode=1&chkContent=";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sAction);
req.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
req.Headers["Accept-Encoding"] = "gzip, deflate";
req.Headers["Accept-Language"] = "zh-cn";
req.Headers["Cache-Control"] = "no-cache";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";
req.Referer = "http://10.223.111.45/pms/exchange/save.so";
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = new CookieContainer();
req.CookieContainer.Add(this.LoginCookie);//把前面登陆后获取的COOKIE加进来
byte[] PostData = System.Text.Encoding.ASCII.GetBytes(sData);
req.ContentLength = PostData.Length;
Stream tempStream = req.GetRequestStream();
tempStream.Write(PostData, 0, PostData.Length);
tempStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(), enc);
string sHtml = sr.ReadToEnd();
sr.Close();
res.Close();
...全文
相关推荐
C#通过一个页面按钮调用另一个页面的按钮(不打开页面的前提下)Response,HttpWebRequest方法
C# 代码编写; 通过一个页面按钮调用另一个页面的按钮(不打开页面的前提下); 采用的是Response,HttpWebRequest方法
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
使用HttpWebRequest提交数据
使用HttpWebRequest提交数据
httpwebrequest抓取页面小工具
使用Httpwebrequest抓取页面数据 主要用于post get数据之类的提交参数
C#(Csharp)多线程HTTP并发请求(HttpWebRequest)采集蜘蛛
C#(也称Csharp)在多线程下并发执行HTTP请求的实现,采用C#封装HttpWebRequest类开发的多线程并发采集程序源码文档,文档中详细说明了HttpWebRequest并发HTTP请求实现网站采集的方法,经过测试同时并发1000+不是问题,好东西和大家分享哦:)


