post提交获得html页面源码的实现代码


本文摘自PHP中文网,作者小云云,侵删。

本文主要和大家分享post提交获得html页面源码的实现代码,希望能帮助到大家。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

/// <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

阅读剩余部分

相关阅读 >>

Html段落的功能

Html如何调用外部css

Html中的form标签有什么作用?Html form标签的用法解释

Html dl标签怎么用

总结类Html标题,段落,换行,水平线,特殊字符

Html怎么在图片上设置字体

Html5中关于div与span Html块级元素的详细介绍

Html中引用jquery的两种方法

Html table的直列化格式是什么

使用Html+css制作一些动画提示工具

更多相关阅读请进入《Html》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...