`
alex8946
  • 浏览: 359848 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

Post/Get方式获取Web页面

阅读更多
浏览器浏览Web页面的时候也无非是 post 或者 get  ,带 cookies 或者不带 cookies 这几种方式。
有了下面这几个方法,什么web页面上的自动投票啊,自动查数据啊等等,全部搞定!
有个工具可以让你查看到IE浏览页面时候的通信内容:httplook , 也顺便推荐一下。


using System.Web;

        /// <summary>
        /// Post方式请求页面
        /// </summary>
        /// <param name="url">地址</param>
        /// <param name="postData">post数据</param>
        /// <returns>响应</returns>
        private HttpWebResponse RequestbyPost(string url, string postData)
        {
            Uri lcUri = new Uri(url);
            HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUri);

            //string lcPostData = HttpUtility.UrlEncode(postData, System.Text.Encoding.Default);
            string lcPostData = postData;
            loHttp.Method = "POST";
            loHttp.ContentType = "application/x-www-form-urlencoded";
            loHttp.KeepAlive = true;
            byte[] lbPostBuffer = System.Text.Encoding.Default
                .GetBytes(lcPostData);
            loHttp.ContentLength = lbPostBuffer.Length;
            Stream loPostData = loHttp.GetRequestStream();
            loPostData.Write(lbPostBuffer, 0, lbPostBuffer.Length);
            loPostData.Close();

            return (HttpWebResponse)loHttp.GetResponse();
        }

        /// <summary>
        /// Post方式请求页面
        /// </summary>
        /// <param name="url">地址</param>
        /// <param name="postData">post数据</param>
        /// <returns>响应</returns>
        private HttpWebResponse RequestbyPost(string url, string postData, string cookieHeader)
        {
            Uri lcUri = new Uri(url);
            HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUri);

            //string lcPostData = HttpUtility.UrlEncode(postData, System.Text.Encoding.Default);
            string lcPostData = postData;
            loHttp.Method = "POST";
            loHttp.ContentType = "application/x-www-form-urlencoded";
            CookieContainer cookie1 = new CookieContainer();
            loHttp.CookieContainer = cookie1;
            loHttp.CookieContainer.SetCookies(lcUri, cookieHeader);
            loHttp.KeepAlive = true;
            byte[] lbPostBuffer = System.Text.Encoding.Default
                .GetBytes(lcPostData);
            loHttp.ContentLength = lbPostBuffer.Length;
            Stream loPostData = loHttp.GetRequestStream();
            loPostData.Write(lbPostBuffer, 0, lbPostBuffer.Length);
            loPostData.Close();

            return (HttpWebResponse)loHttp.GetResponse();
        }


        /// <summary>
        /// Get方式请求页面
        /// </summary>
        /// <param name="url">地址</param>
        /// <returns>响应</returns>
        private HttpWebResponse RequestbyGet(string url)
        {
            Uri lcUri = new Uri(url);
            HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUri);
            loHttp.Method = "GET";
            //loHttp.ContentType = "application/x-www-form-urlencoded";

            return (HttpWebResponse)loHttp.GetResponse();
        }

        /// <summary>
        /// Get方式请求页面
        /// </summary>
        /// <param name="url">地址</param>
        /// <param name="cookieHeader">cookieHeader</param>
        /// <returns>响应</returns>
        private HttpWebResponse RequestbyGet(string url, out string cookieHeader)
        {
            Uri lcUri = new Uri(url);
            HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUri);
            loHttp.Method = "GET";
            //loHttp.ContentType = "application/x-www-form-urlencoded";
            loHttp.AllowAutoRedirect = true;
            loHttp.CookieContainer = new CookieContainer();
            loHttp.KeepAlive = true;
            HttpWebResponse httpWebResponse = (HttpWebResponse)loHttp.GetResponse();
            cookieHeader = loHttp.CookieContainer.GetCookieHeader(lcUri);

            return httpWebResponse;
        }
分享到:
评论

相关推荐

    PHP与Web页面交互 -PHP获取表单信息.ppt

    * * PHP与Web页面交互 -----PHP 获取表单信息1 课程内容 获取文本框的值 获取文件域的值 获取复选框的值 PHP获取表单信息 在Web开发过程中,表单提交是数据传输过程中很重要的一部分,作为以PHP为后台开发语言的...

    PHP与Web页面交互 -表单与PHP的关系.ppt

    * PHP与Web页面交互 -----表单与PHP的关系 课程内容 表单与PHP的关系 提交表单信息 一、表单与PHP的关系 虽然表单是HTML页面的一部分,但是表单与PHP脚本传递数据的过程是无缝衔接的。PHP脚本获取表单中的数据并完成...

    ASP.net技术内幕

    内容包括:ASP.NET Web表单的使用,高级ASP.NET页面的开发,ADO.NET的使用,ASP.NET应用程序的使用, ASP.NET应用程序的保护,ASP.NET Web服务的建立,.NET框架的利用,自定义的ASP.NET控件的建立,ASP.NET的应用...

    在Js页面通过POST传递参数跳转到新页面详解

    最近在工作中遇到一个需求,有个页面 a.vm,对 ajax 请求的结果进行判断后,获取结果里面的数据传递给一个 URL(b.htm),跳转到新的页面 b.htm。 遇到的问题 因为一开始是 GET 请求,所以当传递的数据过大的时候,...

    基于Java实现的Web服务器与测试工具开发.zip

    基于Java编程语言,利用http socket通信技术,写一个小型的web服务器与一个爬虫的测试工具,来对比分析所写的服务器获取到的页面源码与从tomcat获取的相似度。 (1)小型web服务器: 1)支持客户端的网页请求,进行...

    Web服务器的java实现

    Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。  例:假设客户机与www.mycompany.com:8080/mydir/index.html建立了连接,就会发送GET命令:GET /...

    MVC WebApi 用户权限验证及授权DEMO

    浏览器脚本提交get,post等请求给web服务器,由web服务器再次解析请求操作,重复步骤2的后续流程; 17). 当api服务器验证用户身份是,没有可信用户票据,系统提示“未授权的访问操作”,跳转到系统异常处理页面。

    电影购票系统(包含接口文件、微信小程序、web前端、web管理端、SQL文件)

    使用open()方法,包含请求(post、get)、url地址和是否异步执行操作,使用send()方法发送,最后使用在onreadystatechange回调函数访问成功后获取数据,通过JSON.parse()方式解析数据,最后在前端页面渲染后上显示。...

    getAttribute和getParameter区别.

    ——getParameter()是获取POST/GET传递的参数值; ——getAttribute()是获取对象容器中的数据值; ——getParameter:用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收...

    winform程序向web页面交互

    HttpWebRequest类利用HTTP 协议和服务器交互,通过 GET 和 POST 两种方式来对数据进行获取和提交

    Earthquake-Data-FE

    连接到USGS地震目录的Web应用程序。 用户将能够基于不同的时间范围或位置查找地震数据。 我正在构建此应用程序,以练习全栈开发,用户授权,第三方API,并与Three.js一起玩! 线束 主页:显示地球动画以旋转和示例...

    jQuery中Ajax的get、post等方法详解

    在项目中,如果需要传递一些参数给服务器中的页面,那么可以使用$.get()或者$.post()方法(或者是$.ajax()方法) $.get()方法使用GET方式来进行异步请求。结构为:$.get(url [, data] [, callback] [, type]) $.get()...

    HttpServer:一个使用C#编写的简易Web服务器

    GET/POST请求 :grinning_face_with_smiling_eyes: 支持HTTPS协议 :grinning_face_with_smiling_eyes: 支持返回JSON :worried_face: 支持路由方法 :worried_face: 快速开始 HTTP服务器示例 class Program { static ...

    非阻塞式服务器Web.Java.zip

    这样在ArticleHandler中对应的get或者post方法中就会获取相应的参数。当然,你可以任意的使用正则表达式来配置你的URL 简单易用的数据库操作 Options.DBURL = "jdbc:mysql://localhost:3306/test"; Options....

    推荐免费好用的Web在线Office(Word)编辑控件

    /*增加Http协议Post上传接口,可以Post一个动态页面(jsp,asp,php...),由动态页面负责解析数据 bool HttpInit(); bool HttpAddPostString(BSTR strName, BSTR strValue); bool HttpAddPostCurrFile(BSTR strFileID, ...

    spring加载restful(文档+程序源码)

    通常,GET是用于获取或列出一个或多个资源,POST用于创建,PUT用于更新或替换,而DELETE则用于删除资源。  例如,GET http://host/context/employees/12345将获取ID为12345的员工的表示。这个响应表示可以是包含...

    jQuery权威指南-源代码

    3.2.3 获取或设置元素值/51 3.2.4 元素样式操作/53 3.3 创建节点元素/58 3.4 插入节点/60 3.4.1 内部插入节点方法/60 3.4.2 外部插入节点方法/64 3.5 复制节点/66 3.6 替换节点/68 3.7 包裹节点/69 3.8 ...

    Connect_PHP_SDK_for_OAuth2_V1.2_new

    $sContent = GET|POST|upload($sUrl,$aGETParam|$aPOSTParam,$aFileParam[upload的时候需要,其他时候无此参数]); If($sContent!==FALSE){ $aResult = json_decode($sContent,true); //转化成数组 ... //对数组的...

    WebCruiser漏洞扫描器 v3.5.3.zip

    GET/Post/Cookie 注入; 搜索型注入延时; 自动从自带浏览器获取Cookie进行认证; 自动判断数据库类型; 自动获取关键词; 多线程; 高级:代理、敏感词替换/过滤; 报告; WebCruiser v3.5.0更新: 新增...

    mechanize-js:Mechanize是一个Javascript库,可实现自动Web交互

    入门在根文件夹中,您可以运行get_page示例: node examples/get_page.js 要从特定的URL加载: node examples/get_page.js "http://www.cnn.com" 该示例获取页面,然后对所有返回的对象数据执行console.log() 。...

Global site tag (gtag.js) - Google Analytics