Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="url"></param>
        /// <param name="postParam"></param>
        /// <returns></returns>
        public static T Post <T>(string url, object postParam)
        {
            var param = new HttpParam
            {
                Url       = url,
                Method    = "POST",
                PostParam = postParam
            };
            var str = Post(param);

            return(JSON.ToObject <T>(str));
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="url"></param>
        /// <param name="getParam"></param>
        /// <returns></returns>
        public static T Get <T>(string url, object getParam)
        {
            var param = new HttpParam
            {
                Url      = url,
                Method   = "GET",
                GetParam = getParam
            };
            var str = Get(param);

            return(JSON.ToObject <T>(str));
        }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="param"></param>
        /// <returns></returns>
        public static T Get <T>(HttpParam param)
        {
            var str = Get(param);

            return(JSON.ToObject <T>(str));
        }
Example #4
0
 /// <summary>
 /// 获取响应流
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Stream RequestStream(HttpParam param)
 {
     #region 处理地址栏参数
     var getParamSb = new StringBuilder();
     if (param.GetParam != null)
     {
         if (param.GetParam is string)
         {
             getParamSb.Append(param.GetParam.ToString());
         }
         else
         {
             param.GetParam.GetType().GetProperties().ToList().ForEach(d =>
             {
                 getParamSb.AppendFormat("{0}={1}&", d.Name, d.GetValue(param.GetParam, null));
             });
         }
     }
     if (!string.IsNullOrWhiteSpace(getParamSb.ToString().TrimEnd('&')))
     {
         param.Url = string.Format("{0}?{1}", param.Url, getParamSb.ToString().TrimEnd('&'));
     }
     #endregion
     var r = WebRequest.Create(param.Url) as HttpWebRequest;
     if (!string.IsNullOrWhiteSpace(param.CertPath) && !string.IsNullOrWhiteSpace(param.CertPwd))
     {
         ServicePointManager.ServerCertificateValidationCallback = CheckValidationResult;
         var cer = new X509Certificate2(param.CertPath, param.CertPwd, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);
         r.ClientCertificates.Add(cer);
         #region 暂时不要的
         //ServicePointManager.Expect100Continue = true;
         //ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
         //req.ProtocolVersion = HttpVersion.Version11;
         //req.UserAgent = SUserAgent;
         //req.KeepAlive = false;
         //var cookieContainer = new CookieContainer();
         //req.CookieContainer = cookieContainer;
         //req.Timeout = 1000 * 60;
         //req.Headers.Add("x-requested-with", "XMLHttpRequest");
         #endregion
     }
     r.Timeout         = param.TimeOut * 1000;
     r.UserAgent       = param.UserAgent;
     r.Method          = param.Method ?? "POST";
     r.Referer         = param.Referer;
     r.CookieContainer = param.CookieContainer;
     r.ContentType     = param.ContentType;
     if (param.PostParam != null)
     {
         var postParamString = "";
         if (param.PostParam is string)
         {
             postParamString = param.PostParam.ToString();
         }
         else if (param.ParamType == EnumHelper.HttpParamType.Form)
         {
             var dicParam = JSON.ToObject <Dictionary <string, string> >(JSON.ToJSON(param.PostParam));
             postParamString = dicParam.Aggregate(postParamString, (current, dic) => current + (dic.Key + "=" + dic.Value + "&")).TrimEnd('&');
         }
         else
         {
             postParamString = JSON.ToJSON(param.PostParam);
         }
         var bs = param.Encoding.GetBytes(postParamString);
         r.ContentLength = bs.Length;
         using (var rs = r.GetRequestStream())
         {
             rs.Write(bs, 0, bs.Length);
         }
     }
     return(r.GetResponse().GetResponseStream());
 }