• 数据采集类


    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.Net.Security;
    using System.Security.Cryptography.X509Certificates;
    using System.IO;
    using System.Collections;
    using System.Web;
    
    namespace CnGineAppCode.Comm
    {
        public class HttpUtility
        {
            //
            //private static readonly string defaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
            private static readonly string defaultUserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
    
            private CookieContainer _cookieContainer = new CookieContainer();
    
            public CookieContainer CookieContainer
            {
                set { this._cookieContainer = value; }
                get { return this._cookieContainer; }
            }
    
            #region Get请求
    
            public string CreateGet(string url)
            {
                return CreateGet(url, Encoding.UTF8, null, null);
            }
            public string CreateGet(string url, Encoding coding)
            {
                return CreateGet(url, coding, null, null);
            }
            public string CreateGet(string url, Encoding coding, string userAgent, CookieCollection cookies)
            {
                HttpWebRequest request = null;
                HttpWebResponse response = null;
                request = WebRequest.Create(url) as HttpWebRequest;
                request.Method = "GET";
                request.KeepAlive = false;
                //request.ContentType = "application/x-www-form-urlencoded";
                //Cookie
                if (cookies != null)
                    CookieContainer.Add(cookies);
                request.CookieContainer = CookieContainer;
                //userAgent
                if (!string.IsNullOrEmpty(userAgent))
                    request.UserAgent = userAgent;
                else
                    request.UserAgent = defaultUserAgent;
                // 提交请求数据
                //if (!string.IsNullOrEmpty(para))
                //{
                //    byte[] data = Encoding.ASCII.GetBytes(para);
                //    using (Stream stream = request.GetRequestStream())
                //    {
                //        stream.Write(data, 0, data.Length);
                //    }
                //}
                // 接收返回的页面
                response = request.GetResponse() as HttpWebResponse;
                System.IO.Stream responseStream = response.GetResponseStream();
                System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, coding);
                string srcString = reader.ReadToEnd();
                return srcString;
            }
    
            #endregion
    
            #region Post请求
    
            public string CreatePost(string url, Hashtable param)
            {
                return CreatePost(url, Encoding.UTF8, param, null, null);
            }
            public string CreatePost(string url, Hashtable param, Encoding coding)
            {
                return CreatePost(url, coding, param, null, null);
            }
            public string CreatePost(string url, Encoding coding, Hashtable param, string userAgent, CookieCollection cookies)
            {
                HttpWebRequest request = null;
                HttpWebResponse response = null;
                request = WebRequest.Create(url) as HttpWebRequest;
                request.Method = "POST";
                request.KeepAlive = false;
                request.ContentType = "application/x-www-form-urlencoded;charset=gb2312";
                //Cookie
                if (cookies != null)
                    CookieContainer.Add(cookies);
                request.CookieContainer = CookieContainer;
                //userAgent
                if (!string.IsNullOrEmpty(userAgent))
                    request.UserAgent = userAgent;
                else
                    request.UserAgent = defaultUserAgent;
                // 提交请求数据
                if (param!= null && param.Keys.Count>0)
                {
                    StringBuilder sb = new StringBuilder();
                    foreach (string key in param.Keys)
                    {
                        string value = "";
                        if (param[key] != null && !string.IsNullOrEmpty(param[key].ToString()))
                        {
                            value = System.Web.HttpUtility.UrlEncode(param[key].ToString(), coding);
                        }
                        sb.AppendFormat("{0}={1}&", key, value);
                    }
    
                    byte[] data = Encoding.ASCII.GetBytes(System.Text.RegularExpressions.Regex.Replace(sb.ToString(), "&$", ""));
                    using (Stream stream = request.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }
                }
                // 接收返回的页面
                response = request.GetResponse() as HttpWebResponse;
                System.IO.Stream responseStream = response.GetResponseStream();
                System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, coding);
                string srcString = reader.ReadToEnd();
                return srcString;
            }
            #endregion
        }
    }
  • 相关阅读:
    消息中间件——RabbitMQ(六)理解Exchange交换机核心概念!
    消息中间件——RabbitMQ(五)快速入门生产者与消费者,SpringBoot整合RabbitMQ!
    消息中间件——RabbitMQ(四)命令行与管控台的基本操作!
    消息中间件——RabbitMQ(三)理解RabbitMQ核心概念和AMQP协议!
    LayUI的基本使用
    Git报错:Your branch is up to date with 'origin/master'.
    Git报错:Please tell me who you are.
    Git报错:Permission denied (publickey)
    在 windows 上安装 git 2.22
    在 windows 上安装 git 2.15
  • 原文地址:https://www.cnblogs.com/daixingqing/p/2809175.html
Copyright © 2020-2023  润新知