Utils/HttpUtils.cs

(开头部分) 8KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using AppManager.Config;
using System;
using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Text;

namespace AppManager.Utils {
    /// <summary>
    /// Http请求工具类
    /// Get和Post方法
    /// 
    /// </summary>
    internal static class HttpUtils {
        public const string TypeGet = WebRequestMethods.Http.Get;
        public const string TypePost = WebRequestMethods.Http.Post;
        public const string Http = "http://";
        public const string Https = "https://";

        private const string DEFAULT_USER_AGENT = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

        public const string ContentTypeFormData = "multipart/form-data";
        public const string ContentTypeFormUrlencoded = "application/x-www-form-urlencoded;charset=utf-8";
        public const string ContentTypeJson = "application/json";
        public const string ContentTypeText = "text/plain";
        public const string ContentTypeJavascript = "application/javascript";
        public const string ContentTypeHtml = "text/html";
        public const string ContentTypeXml = "application/xml";

        /// <summary>
        /// 创建Http请求,可用于后续的异步或同步操作
        /// </summary>
        /// <param name="url"></param>
        /// <param name="type">post或get</param>
        /// <param name="data">Post时的数据,Get无效</param>
        /// <param name="contentType"></param>
        /// <param name="timeout">超时</param>
        /// <returns></returns>
        public static HttpWebRequest HttpRequest(string url, string type, string data, string contentType, int timeout) {
            HttpWebRequest request = null;
            if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) {
                // 这里设置了协议类型。把SSL验证的设置写到HttpRequect创建之前
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
                ServicePointManager.CheckCertificateRevocationList = true;
                ServicePointManager.DefaultConnectionLimit = 100;
                ServicePointManager.Expect100Continue = true;

                request = WebRequest.Create(url) as HttpWebRequest;
            } else {
                request = (HttpWebRequest)WebRequest.Create(url);
            }
            request.ContentType = string.IsNullOrEmpty(contentType) ? ContentTypeJson : contentType;
            request.UserAgent = DEFAULT_USER_AGENT;
            request.Method = type;
            request.KeepAlive = false;
            request.Timeout = timeout;
            // request.ReadWriteTimeout = timeout;
            if (WebRequestMethods.Http.Post.ToLower().Equals(type.ToLower())) {
后面还有 130 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。