/// <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)); }
/// <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)); }
/// <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)); }
/// <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()); }