使用 HttpRequest Get和Post调用其他页面
 
昨天选课,虽然有一个排队系统。但是排队系统实在不怎么的啊。插队的有那么的多。有人做了插队工具下了一个看看,那是一个使用javascript实现的系统,整个只有一个页面。你可以在这里下载:/Files/lulu/xk.rar。它使用xmlHttpRequest向服务器发送请求。
js不太熟悉,发现HttpRequest功能差不多,用它试试啦。
但是不知道提交数据怎么组织,革命尚未成功但是还是学到了点东西,就在这了写下来了:
![]() //Get请求方式
  //Get请求方式
![]() private string RequestGet(string Url)
    private string RequestGet(string Url)
![]() {
    {
![]() string PageStr = string.Empty;//用于存放还回的html
        string PageStr = string.Empty;//用于存放还回的html
![]() Uri url = new Uri(Url);//Uri类 提供统一资源标识符 (URI) 的对象表示形式和对 URI 各部分的轻松访问。就是处理url地址
        Uri url = new Uri(Url);//Uri类 提供统一资源标识符 (URI) 的对象表示形式和对 URI 各部分的轻松访问。就是处理url地址
![]() try
        try
![]() {
        {
![]() HttpWebRequest httprequest = (HttpWebRequest)WebRequest.Create(url);//根据url地址创建HTTpWebRequest对象
            HttpWebRequest httprequest = (HttpWebRequest)WebRequest.Create(url);//根据url地址创建HTTpWebRequest对象
![]() #region 参数设置
            #region 参数设置
![]() httprequest.Method = "get";
            httprequest.Method = "get";
![]()
![]() //---------------------------------------------设定一些参数(不必要可以)
            //---------------------------------------------设定一些参数(不必要可以)
![]() //httprequest.KeepAlive = false;//持久连接设置为false
            //httprequest.KeepAlive = false;//持久连接设置为false
![]() //httprequest.ProtocolVersion = HttpVersion.Version11;// 网络协议的版本
            //httprequest.ProtocolVersion = HttpVersion.Version11;// 网络协议的版本
![]() //httprequest.Proxy = WebProxy.GetDefaultProxy();//服务器代理
            //httprequest.Proxy = WebProxy.GetDefaultProxy();//服务器代理
![]() //httprequest.ContentType = "application/x-www-form-urlencoded";//http 头
            //httprequest.ContentType = "application/x-www-form-urlencoded";//http 头
![]() //httprequest.AllowAutoRedirect = true;
            //httprequest.AllowAutoRedirect = true;
![]() //httprequest.MaximumAutomaticRedirections = 10;
            //httprequest.MaximumAutomaticRedirections = 10;
![]() //httprequest.Timeout = 30000;//设定超时十秒(毫秒)
            //httprequest.Timeout = 30000;//设定超时十秒(毫秒)
![]() //httprequest.UserAgent = "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1)"; //浏览器
            //httprequest.UserAgent = "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1)"; //浏览器
![]() //=================================================
            //=================================================
![]() #endregion
            #endregion
![]() HttpWebResponse response = (HttpWebResponse)httprequest.GetResponse();//使用HttpWebResponse获取请求的还回值
            HttpWebResponse response = (HttpWebResponse)httprequest.GetResponse();//使用HttpWebResponse获取请求的还回值
![]() Stream steam = response.GetResponseStream();//从还回对象中获取数据流
            Stream steam = response.GetResponseStream();//从还回对象中获取数据流
![]() StreamReader reader = new StreamReader(steam, Encoding.GetEncoding("gb2312"));//读取数据Encoding.GetEncoding("gb2312")指编码是gb2312,不让中文会乱码的
            StreamReader reader = new StreamReader(steam, Encoding.GetEncoding("gb2312"));//读取数据Encoding.GetEncoding("gb2312")指编码是gb2312,不让中文会乱码的
![]() PageStr = reader.ReadToEnd();
            PageStr = reader.ReadToEnd();
![]() reader.Close();
            reader.Close();
![]() }
        }
![]() catch (Exception e)
        catch (Exception e)
![]() {
        {
![]() PageStr += e.Message;
            PageStr += e.Message;
![]() }
        }
![]() return PageStr;
        return PageStr;
![]() }
    }
![]()
![]()
![]() private string RequestPost(string Url,string Context)//两个参数分别是Url地址和Post过去的数据
  private string RequestPost(string Url,string Context)//两个参数分别是Url地址和Post过去的数据
![]() {
    {
![]() string PageStr=string.Empty;
        string PageStr=string.Empty;
![]() Uri url = new Uri(Url);
        Uri url = new Uri(Url);
![]() byte[] reqbytes=Encoding.ASCII.GetBytes(Context);
        byte[] reqbytes=Encoding.ASCII.GetBytes(Context);
![]() try
        try
![]() {
        {
![]() HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
![]() req.Method = "post";
            req.Method = "post";
![]() req.ContentType = "application/x-www-form-urlencoded";
            req.ContentType = "application/x-www-form-urlencoded";
![]() req.ContentLength = reqbytes.Length;
            req.ContentLength = reqbytes.Length;
![]() Stream stm = req.GetRequestStream();
            Stream stm = req.GetRequestStream();
![]() stm.Write(reqbytes, 0, reqbytes.Length);
            stm.Write(reqbytes, 0, reqbytes.Length);
![]() 
            
![]() stm.Close();
            stm.Close();
![]() HttpWebResponse wr = (HttpWebResponse)req.GetResponse();
            HttpWebResponse wr = (HttpWebResponse)req.GetResponse();
![]() Stream stream = wr.GetResponseStream();
            Stream stream = wr.GetResponseStream();
![]() StreamReader srd= new StreamReader(stream,Encoding.GetEncoding("gb2312"));
            StreamReader srd= new StreamReader(stream,Encoding.GetEncoding("gb2312"));
![]() PageStr += srd.ReadToEnd();
            PageStr += srd.ReadToEnd();
![]() stream.Close();
            stream.Close();
![]() srd.Close();
            srd.Close();
![]() }
        }
![]() catch (Exception e)
        catch (Exception e)
![]() {
        {
![]() PageStr += e.Message;
            PageStr += e.Message;
![]() }
        }
![]() return PageStr;
        return PageStr; 
![]() }
    }
js不太熟悉,发现HttpRequest功能差不多,用它试试啦。
但是不知道提交数据怎么组织,革命尚未成功但是还是学到了点东西,就在这了写下来了:
  
 //Get请求方式
  //Get请求方式 private string RequestGet(string Url)
    private string RequestGet(string Url) {
    { string PageStr = string.Empty;//用于存放还回的html
        string PageStr = string.Empty;//用于存放还回的html Uri url = new Uri(Url);//Uri类 提供统一资源标识符 (URI) 的对象表示形式和对 URI 各部分的轻松访问。就是处理url地址
        Uri url = new Uri(Url);//Uri类 提供统一资源标识符 (URI) 的对象表示形式和对 URI 各部分的轻松访问。就是处理url地址 try
        try {
        { HttpWebRequest httprequest = (HttpWebRequest)WebRequest.Create(url);//根据url地址创建HTTpWebRequest对象
            HttpWebRequest httprequest = (HttpWebRequest)WebRequest.Create(url);//根据url地址创建HTTpWebRequest对象 #region 参数设置
            #region 参数设置 httprequest.Method = "get";
            httprequest.Method = "get";
 //---------------------------------------------设定一些参数(不必要可以)
            //---------------------------------------------设定一些参数(不必要可以) //httprequest.KeepAlive = false;//持久连接设置为false
            //httprequest.KeepAlive = false;//持久连接设置为false //httprequest.ProtocolVersion = HttpVersion.Version11;// 网络协议的版本
            //httprequest.ProtocolVersion = HttpVersion.Version11;// 网络协议的版本 //httprequest.Proxy = WebProxy.GetDefaultProxy();//服务器代理
            //httprequest.Proxy = WebProxy.GetDefaultProxy();//服务器代理 //httprequest.ContentType = "application/x-www-form-urlencoded";//http 头
            //httprequest.ContentType = "application/x-www-form-urlencoded";//http 头 //httprequest.AllowAutoRedirect = true;
            //httprequest.AllowAutoRedirect = true; //httprequest.MaximumAutomaticRedirections = 10;
            //httprequest.MaximumAutomaticRedirections = 10; //httprequest.Timeout = 30000;//设定超时十秒(毫秒)
            //httprequest.Timeout = 30000;//设定超时十秒(毫秒) //httprequest.UserAgent = "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1)"; //浏览器
            //httprequest.UserAgent = "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1)"; //浏览器 //=================================================
            //================================================= #endregion
            #endregion HttpWebResponse response = (HttpWebResponse)httprequest.GetResponse();//使用HttpWebResponse获取请求的还回值
            HttpWebResponse response = (HttpWebResponse)httprequest.GetResponse();//使用HttpWebResponse获取请求的还回值 Stream steam = response.GetResponseStream();//从还回对象中获取数据流
            Stream steam = response.GetResponseStream();//从还回对象中获取数据流 StreamReader reader = new StreamReader(steam, Encoding.GetEncoding("gb2312"));//读取数据Encoding.GetEncoding("gb2312")指编码是gb2312,不让中文会乱码的
            StreamReader reader = new StreamReader(steam, Encoding.GetEncoding("gb2312"));//读取数据Encoding.GetEncoding("gb2312")指编码是gb2312,不让中文会乱码的 PageStr = reader.ReadToEnd();
            PageStr = reader.ReadToEnd(); reader.Close();
            reader.Close(); }
        } catch (Exception e)
        catch (Exception e) {
        { PageStr += e.Message;
            PageStr += e.Message; }
        } return PageStr;
        return PageStr; }
    }

//Post请求方式,于Get的方式写法相似,所以解释就些少一点了
  
 private string RequestPost(string Url,string Context)//两个参数分别是Url地址和Post过去的数据
  private string RequestPost(string Url,string Context)//两个参数分别是Url地址和Post过去的数据 {
    { string PageStr=string.Empty;
        string PageStr=string.Empty; Uri url = new Uri(Url);
        Uri url = new Uri(Url); byte[] reqbytes=Encoding.ASCII.GetBytes(Context);
        byte[] reqbytes=Encoding.ASCII.GetBytes(Context); try
        try {
        { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "post";
            req.Method = "post"; req.ContentType = "application/x-www-form-urlencoded";
            req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = reqbytes.Length;
            req.ContentLength = reqbytes.Length; Stream stm = req.GetRequestStream();
            Stream stm = req.GetRequestStream(); stm.Write(reqbytes, 0, reqbytes.Length);
            stm.Write(reqbytes, 0, reqbytes.Length); 
             stm.Close();
            stm.Close(); HttpWebResponse wr = (HttpWebResponse)req.GetResponse();
            HttpWebResponse wr = (HttpWebResponse)req.GetResponse(); Stream stream = wr.GetResponseStream();
            Stream stream = wr.GetResponseStream(); StreamReader srd= new StreamReader(stream,Encoding.GetEncoding("gb2312"));
            StreamReader srd= new StreamReader(stream,Encoding.GetEncoding("gb2312")); PageStr += srd.ReadToEnd();
            PageStr += srd.ReadToEnd(); stream.Close();
            stream.Close(); srd.Close();
            srd.Close(); }
        } catch (Exception e)
        catch (Exception e) {
        { PageStr += e.Message;
            PageStr += e.Message; }
        } return PageStr;
        return PageStr;  }
    } 
                    
                 
 
    
 
        