• 使用 HttpRequest Get和Post调用其他页面


    昨天选课,虽然有一个排队系统。但是排队系统实在不怎么的啊。插队的有那么的多。有人做了插队工具下了一个看看,那是一个使用javascript实现的系统,整个只有一个页面。你可以在这里下载:/Files/lulu/xk.rar。它使用xmlHttpRequest向服务器发送请求。
    js不太熟悉,发现HttpRequest功能差不多,用它试试啦。

    但是不知道提交数据怎么组织,革命尚未成功但是还是学到了点东西,就在这了写下来了:


     

      //Get请求方式
        private string RequestGet(string Url)
        
    {
            
    string PageStr = string.Empty;//用于存放还回的html
            Uri url = new Uri(Url);//Uri类 提供统一资源标识符 (URI) 的对象表示形式和对 URI 各部分的轻松访问。就是处理url地址
            try
            
    {
                HttpWebRequest httprequest 
    = (HttpWebRequest)WebRequest.Create(url);//根据url地址创建HTTpWebRequest对象
                #region 参数设置
                httprequest.Method 
    = "get";

                
    //---------------------------------------------设定一些参数(不必要可以)
                
    //httprequest.KeepAlive = false;//持久连接设置为false
                
    //httprequest.ProtocolVersion = HttpVersion.Version11;// 网络协议的版本
                
    //httprequest.Proxy = WebProxy.GetDefaultProxy();//服务器代理
                
    //httprequest.ContentType = "application/x-www-form-urlencoded";//http 头
                
    //httprequest.AllowAutoRedirect = true;
                
    //httprequest.MaximumAutomaticRedirections = 10;
                
    //httprequest.Timeout = 30000;//设定超时十秒(毫秒)
                
    //httprequest.UserAgent = "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1)"; //浏览器
                
    //=================================================
                #endregion

                HttpWebResponse response 
    = (HttpWebResponse)httprequest.GetResponse();//使用HttpWebResponse获取请求的还回值
                Stream steam = response.GetResponseStream();//从还回对象中获取数据流
                StreamReader reader = new StreamReader(steam, Encoding.GetEncoding("gb2312"));//读取数据Encoding.GetEncoding("gb2312")指编码是gb2312,不让中文会乱码的
                PageStr = reader.ReadToEnd();
                reader.Close();
            }

            
    catch (Exception e)
            
    {
                PageStr 
    += e.Message;
            }

            
    return PageStr;
        }




    //Post请求方式,于Get的方式写法相似,所以解释就些少一点了
     

      private string RequestPost(string Url,string Context)//两个参数分别是Url地址和Post过去的数据
        {
            
    string PageStr=string.Empty;
            Uri url 
    = new Uri(Url);
            
    byte[] reqbytes=Encoding.ASCII.GetBytes(Context);
            
    try
            
    {
                HttpWebRequest req 
    = (HttpWebRequest)WebRequest.Create(url);
                req.Method 
    = "post";
                req.ContentType 
    = "application/x-www-form-urlencoded";
                req.ContentLength 
    = reqbytes.Length;
                Stream stm 
    = req.GetRequestStream();
                stm.Write(reqbytes, 
    0, reqbytes.Length);
                
                stm.Close();
                HttpWebResponse wr 
    = (HttpWebResponse)req.GetResponse();
                Stream stream 
    = wr.GetResponseStream();
                StreamReader srd
    = new StreamReader(stream,Encoding.GetEncoding("gb2312"));
                PageStr 
    += srd.ReadToEnd();
                stream.Close();
                srd.Close();
            }

            
    catch (Exception e)
            
    {
                PageStr 
    += e.Message;
            }

            
    return PageStr; 
        }
     
     
     public string WebClientGet(string url)
            {
                var client = new WebClient();
                client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
                var stream = client.OpenRead(url);
                if (stream == null) return "";
                var reader = new StreamReader(stream, Encoding.Default);
                var result = reader.ReadToEnd();
                stream.Close();
                reader.Close();
                return result;
            }
  • 相关阅读:
    linux的crash之hardlock排查记录
    linux 巨页使用测试
    linux 巨页使用测试以及勘误1
    python判断两个list包含关系
    JavaScript--数据结构之栈
    JavaScript--数据结构与算法之列表
    js数组详解:
    基于jQuery的插件开发
    函数的理解:
    JS面向对象:
  • 原文地址:https://www.cnblogs.com/codeloves/p/2975474.html
Copyright © 2020-2023  润新知