HttpWebRequest POST不会加载整个网站 [英] HttpWebRequest POST doesnt load entire site

查看:68
本文介绍了HttpWebRequest POST不会加载整个网站的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,
我有一个执行HTTP POST的HttpWebRequest POST函数,但是在网站上进行发布后,它不会加载整个网站.如果我对HttpWebRequest使用相同的设置只是为了加载网站而不进行发布,那么它加载就很好了.
我的代码是

Hello,
I have a HttpWebRequest POST function that does a HTTP POST, but after I do a post on a site it doesnt load the entire site. If I use same settings for HttpWebRequest just to load the site without doing a post, it loads just fine.
My code is,

byte[] buffer = Encoding.ASCII.GetBytes(post);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Timeout = 20000;
request.UserAgent = gettext(useragent);
request.ProtocolVersion = HttpVersion.Version10;
request.AllowAutoRedirect = true;
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.ContentType = "application/x-www-form-urlencoded";
request.Referer = referer;
request.KeepAlive = true;
request.Method = "POST";
request.ContentLength = buffer.Length;
Stream PostData = request.GetRequestStream();
PostData.Write(buffer, 0, buffer.Length);
HttpWebResponse WebResp = (HttpWebResponse)request.GetResponse();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
_referer = WebResp.ResponseUri.ToString();
string vystup = _Answer.ReadToEnd();
html = RemoveBetween("<!--", "-->", vystup);
PostData.Close();
_Answer.Close();
Answer.Close();



提前谢谢.



Thanks in advance.

推荐答案

快速查看它,可能是因为直到调用request.GetResponse();之后,您才关闭PostData流. br/>
试试这个:

Looking over it quickly, it could be because you don''t close the PostData stream until after you call request.GetResponse();

try this:

request.Method = "POST";
request.ContentLength = buffer.Length;
Stream PostData = request.GetRequestStream();
PostData.Write(buffer, 0, buffer.Length);

// moved this line of code here instead of at the end
PostData.Close();

HttpWebResponse WebResp = (HttpWebResponse)request.GetResponse();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
_referer = WebResp.ResponseUri.ToString();
string vystup = _Answer.ReadToEnd();
html = RemoveBetween("<!--", "-->", vystup);
_Answer.Close();
Answer.Close();


这篇关于HttpWebRequest POST不会加载整个网站的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆