httpwerequest
httpwerequest 可不可这样使用比如说我用httpwerequest GET方式打开了一个界面,
再从所得的文件中提取了一些信息。就直接将提交方式改成post进行数据提交。
会报错。请大侠们帮帮忙啊。。。。。
try
{
CookieContainer cc = new CookieContainer();
string _post = txt_paraments.Text.Trim();
string _url = txt_url.Text.Trim();
HttpWebRequest request;
////登陆
request = (HttpWebRequest)WebRequest.Create(_url);//实例化web访问类
request.Method = "POST";//数据提交方式为POST
//模拟头
request.ContentType = "application/x-www-form-urlencoded";
byte[] postdatabytes = Encoding.UTF8.GetBytes(_post);
request.ContentLength = postdatabytes.Length;
request.AllowAutoRedirect = false;
request.CookieContainer = cc;
request.KeepAlive = true;
//提交请求
Stream stream;
stream = request.GetRequestStream();
stream.Write(postdatabytes, 0, postdatabytes.Length);
stream.Close();
////接收响应
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
////保存返回cookie
response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);
CookieCollection cook = response.Cookies;
string strcrook = request.CookieContainer.GetCookieHeader(request.RequestUri);
//
//获取formhash,posttime
request = (HttpWebRequest)WebRequest.Create("http://training.maxsys.com.cn:8084/upload/forum.php?mod=post&action=newthread&fid=40");
request.Method = "GET";
request.CookieContainer = cc;
response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(responseStream,
Encoding.UTF8);
string html = streamReader.ReadToEnd();
string formhash = "";
string posttime = "";
string hash = "<input type=\"hidden\" name=\"formhash\".*?>";
string time = "<input type=\"hidden\" name=\"posttime\".*?>";
Regex regx = new Regex(hash);
MatchCollection mc = regx.Matches(html);
if (mc.Count >= 1)
{
formhash = mc[0].ToString().Trim().Split('"')[5];
}
//Response.Write(formhash + "--->" + mc.Count + "<br/>");
regx = new Regex(time);
mc = regx.Matches(html);
if (mc.Count >= 1)
{
posttime = mc[0].ToString().Trim().Split('"')[7];
}
//Response.Write(posttime + "--->" + mc.Count + "<br/>");
Response.Write(html);
streamReader.Close();
streamReader.Dispose();
//
//request = (HttpWebRequest)WebRequest.Create("http://training.maxsys.com.cn:8084/upload/forum.php?mod=post&action=newthread&fid=40");
string postdata = "formhash=" + formhash + "&posttime=" + posttime + "&wysiwyg=1&subject=SDFGSDFG&message=SDFGSDFGSDFGSDFGSDFGSFGSDFG&replycredit_extcredits=0&replycredit_times=1&replycredit_membertimes=1&replycredit_random=100&readperm=&price=&save=&usesig=1&allownoticeauthor=1";
request.CookieContainer = cc;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
//提交请求
postdatabytes = Encoding.UTF8.GetBytes(postdata);
request.ContentLength = postdatabytes.Length;
stream = request.GetRequestStream();
stream.Write(postdatabytes, 0, postdatabytes.Length);
stream.Close();
//接收响应
response = (HttpWebResponse)request.GetResponse();
responseStream = response.GetResponseStream();
streamReader = new StreamReader(responseStream, Encoding.UTF8);
html = streamReader.ReadToEnd();
Response.Write(html);
streamReader.Close();
streamReader.Dispose();
}
catch (Exception)
{
//第一次POST出错;
} httpwerequest --------------------编程问答-------------------- 在线等啊。。。。
补充:.NET技术 , C#