[HTML教程] post提交获得html页面源码的实现代码

[复制链接]
查看1685 | 回复9 | 2020-10-3 11:38:50 | 显示全部楼层 |阅读模式
本文主要和大家分享post提交获得html页面源码的实现代码,希望能帮助到大家。

/// <summary>        /// 获得页面的html源码  主要用于后台生成静态文件时获得源码        /// </summary>        /// <param name="url"></param>        /// <returns></returns>        public static string GetPageHTML(string url)
        {
            string httpString = string.Empty;
            WebRequest request = WebRequest.Create(url);
            request.Timeout = 200000;            
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                if (response.StatusDescription.ToLower().Equals("ok"))
                {
                    using (StreamReader writer = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312")))
                    {
                        httpString = writer.ReadToEnd();
                    }
                }
            }
            return httpString;
        }
 
 
        /// <summary>        /// 获得页面的html源码  主要用于后台生成静态文件时获得源码UTF-8        /// </summary>        /// <param name="url"></param>        /// <returns></returns>        public static string GetPageHTMLUTF8(string url)
        {
            string httpString = string.Empty;
            WebRequest request = WebRequest.Create(url);
            request.Timeout = 200000;            
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                if (response.StatusDescription.ToLower().Equals("ok"))
                {
                    using (StreamReader writer = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8")))
                    {
                        httpString = writer.ReadToEnd();
                    }
                }
            }
            return httpString;
        }
 
 
        /// <summary>        /// post提交JSON数据。支持.net4.0及以下的版本        /// </summary>        /// <param name="url"></param>        /// <param name="json"></param>        /// <returns></returns>        public static string GetHtmlByJson(string url, string json = "")
        {
            var result = string.Empty;
 
            try            {
                var request = WebRequest.Create(url) as HttpWebRequest;
                request.ContentType = "text/json";
                request.Method = "post";
                //request.CookieContainer = _cookie;
                 using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                {
                    streamWriter.Write(json);
                    streamWriter.Flush();
                    streamWriter.Close();
 
                    var response = (HttpWebResponse)request.GetResponse();
 
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        result = reader.ReadToEnd();
                    }
                }
            }
            catch (UriFormatException uex)
            {
                // 出错处理            }
 
            return result;
        }
 
        /// <summary>         /// 利用WebClient 远程POST数据并返回数据         /// </summary>         /// <param name="strUrl">远程URL地址</param>         /// <param name="strParams">参数,要提交的JSON字符串</param>         /// <param name="RespEncode">POST数据的编码</param>         /// <param name="ReqEncode">获取数据的编码</param>         /// <returns></returns>         public static string PostData(string strUrl, string strParams, Encoding RespEncode, Encoding ReqEncode)
        {
            /**             * 本函数只支持.net4.5以上的框架            HttpClient httpclient = new HttpClient();            try            {                //打开页面                 httpclient.Credentials = CredentialCache.DefaultCredentials;                //从指定的URI下载资源                 byte[] responseData = httpclient.DownloadData(strUrl);                string srcString = RespEncode.GetString(responseData);
                 httpclient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");                string postString = strParams;                // 将字符串转换成字节数组                 byte[] postData = Encoding.ASCII.GetBytes(postString);                // 上传数据,返回页面的字节数组                 responseData = httpclient.UploadData(strUrl, "POST", postData);                srcString = ReqEncode.GetString(responseData);
                 return srcString;            }            catch (Exception ex)            {                //记录异常日志                 //释放资源                 httpclient.Dispose();                return string.Empty;            }            */            return "";
        }
 
 
        /// <summary>        /// 执行POST提交范例        /// </summary>        /// <param name="url"></param>        /// <param name="postdata">"LoginName=365admin&Password=fob123"</param>        /// <returns></returns>        public static string PostPageHTMLUTF8(string url, string postdata)
        {
            WebClient client = new WebClient();
            System.Collections.Specialized.NameValueCollection list = new System.Collections.Specialized.NameValueCollection();            
            list.Add("opencheckindatatype", "3");
            list.Add("starttime", "1492617600");
            list.Add("endtime", "1492790400");
            // "useridlist": ["james","paul"]                          list.Add("useridlist", "['TuHuaXing']");            
            byte[] j = client.UploadValues(url, list);
            //var dec = BitConverter.ToInt64(j,0);            //string jS = BitConverter.ToString(j);            //jS = Convert.ToString(jS,10);            return System.Text.Encoding.Default.GetString(j);
 
            //目标页面获取值   request.form["id"]
             /**            WebRequest request7 = WebRequest.Create(url);            request7.Method = "POST";
             //post传参数                        byte[] bytes = Encoding.ASCII.GetBytes(postdata);            request7.ContentType = "application/x-www-form-urlencoded";            request7.ContentLength = postdata.Length;            request7.S            Stream sendStream = request7.GetRequestStream();            sendStream.Write(bytes, 0, bytes.Length);            sendStream.Close();
             //得到返回值              WebResponse response7 = request7.GetResponse();            string OrderQuantity = new StreamReader(response7.GetResponseStream(), Encoding.GetEncoding("utf-8")).ReadToEnd();            return OrderQuantity;            //转化成json对象处理            //List<GetOrderQuantity> getOrderQuantity = sr.Deserialize<List<GetOrderQuantity>>(OrderQuantity);            **/        }

相关推荐:
jquery获得当前html页面源码的方法_jquery

以上就是post提交获得html页面源码的实现代码的详细内容,更多请关注爱上源码网其它相关文章!

  • 微信
  • 分享
  • 相关标签:html post 页面
  • 本文原创发布爱上源码网,转载请注明出处,感谢您的尊重!
    • 上一篇:html基础图像知识详解
    • 下一篇:vue文件中HTML代码格式化方法

    相关文章

    相关视频

    • 奇妙的 CSS shapes(CSS图形)
    • IE、火狐、谷歌浏览器下兼容统一select样式
    • 神奇的 conic-gradient 圆锥渐变
    • 利用html实现一个三级菜单
    • post提交获得html页面源码的实现代码
    • get与post的区别
    • PHP $_POST 变量
    • PHP开发基础教程之$_POST
    • PHP 新手入门之$_GET 与 $_POST
    • PHP $_POST 变量
    本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn! 本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~
    回复

    使用道具 举报

    二狗子2017 | 2021-2-14 09:38:19 | 显示全部楼层
    有情怀的站啊,爱了
    回复

    使用道具 举报

    李冰381 | 2021-3-20 14:10:25 | 显示全部楼层
    感谢悟空源码分享精品资源!
    回复

    使用道具 举报

    几器那午 | 2021-9-7 20:54:11 | 显示全部楼层
    很不错的资源站
    回复

    使用道具 举报

    楼琴观雪让 | 2021-12-7 06:06:34 | 显示全部楼层
    我是来白嫖资源的!
    回复

    使用道具 举报

    绣绣仙女酌 | 2022-6-2 21:53:59 | 显示全部楼层
    感谢悟空源码分享精品资源!
    回复

    使用道具 举报

    我是一个梦蛋 | 2023-3-6 21:28:11 | 显示全部楼层
    这个资源都有真不错
    回复

    使用道具 举报

    Deville | 2023-9-1 00:28:44 | 显示全部楼层
    资源太多了,准备办个会员
    回复

    使用道具 举报

    永远丶并不远 | 2023-12-5 16:51:23 | 显示全部楼层
    站长真良心,这么大的资源站都是免费下载
    回复

    使用道具 举报

    DJ牧南 | 2024-1-11 16:02:11 | 显示全部楼层
    悟空源码资源不错。粉了
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则