/// <summary>
        /// 使用Post方法获取字符串结果,常规提交
        /// </summary>
        /// <param name="serviceProvider">.NetCore 下的服务器提供程序,如果 .NET Framework 则保留 null</param>
        /// <param name="url"></param>
        /// <param name="cookieContainer"></param>
        /// <param name="formData"></param>
        /// <param name="encoding"></param>
        /// <param name="certName">证书唯一名称,如果不需要则保留null</param>
        /// <param name="cer">证书,如果不需要则保留null</param>
        /// <param name="useAjax"></param>
        /// <param name="headerAddition">header 附加信息</param>
        /// <param name="timeOut"></param>
        /// <param name="checkValidationResult">验证服务器证书回调自动验证</param>
        /// <returns></returns>
        public static async Task <string> HttpPostAsync(
            IServiceProvider serviceProvider,
            string url, CookieContainer cookieContainer = null,
            Dictionary <string, string> formData        = null, Encoding encoding = null,
#if !NET451
            string certName = null,
#else
            X509Certificate2 cer = null,
#endif
            bool useAjax = false, Dictionary <string, string> headerAddition = null, int timeOut = Config.TIME_OUT,
            bool checkValidationResult = false)
        {
            MemoryStream ms = new MemoryStream();
            await formData.FillFormDataStreamAsync(ms).ConfigureAwait(false);//填充formData

            string contentType = HttpClientHelper.GetContentType(formData);

            return(await HttpPostAsync(
                       serviceProvider,
                       url, cookieContainer, ms, null, null, encoding,
#if !NET451
                       certName,
#else
                       cer,
#endif
                       useAjax, headerAddition, timeOut, checkValidationResult, contentType).ConfigureAwait(false));
        }
        /// <summary>
        /// 使用Post方法获取字符串结果,常规提交
        /// </summary>
        /// <returns></returns>
        public static async Task <string> HttpPostAsync(string url, CookieContainer cookieContainer = null,
                                                        Dictionary <string, string> formData        = null, Encoding encoding = null, X509Certificate2 cer = null,
                                                        bool useAjax = false, Dictionary <string, string> headerAddition      = null, int timeOut          = Config.TIME_OUT,
                                                        bool checkValidationResult = false)
        {
            MemoryStream ms = new MemoryStream();
            await formData.FillFormDataStreamAsync(ms);//填充formData

            string contentType = HttpClientHelper.GetContentType(formData);

            return(await HttpPostAsync(url, cookieContainer, ms, null, null, encoding, cer, useAjax, headerAddition, timeOut, checkValidationResult, contentType));
        }
        /// <summary>
        /// 使用Post方法获取字符串结果,常规提交
        /// </summary>
        /// <returns></returns>
        public static string HttpPost(string url, CookieContainer cookieContainer = null, Dictionary<string, string> formData = null,
            Encoding encoding = null,
#if NETSTANDARD2_0
            string certName = null,
#else
            X509Certificate2 cer = null,
#endif            
            bool useAjax = false, Dictionary<string, string> headerAddition = null, int timeOut = Config.TIME_OUT,
            bool checkValidationResult = false)
        {
            MemoryStream ms = new MemoryStream();
            formData.FillFormDataStream(ms);//填充formData

            string contentType = HttpClientHelper.GetContentType(formData);

            return HttpPost(url, cookieContainer, ms, null, null, encoding,
#if NETSTANDARD2_0
                certName,
#else
                cer,
#endif
                useAjax, headerAddition, timeOut, checkValidationResult, contentType);
        }