当前位置:编程学习 > C#/ASP.NET >>

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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,