Beispiel #1
0
        /// <summary>
        /// Post请求
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="url">请求地址</param>
        /// <param name="postData">请求参数(json格式)</param>
        /// <param name="type">返回数据类型,支持:json、xml</param>
        /// <param name="resultCallback">处理返回结果的委托</param>
        /// <returns></returns>
        public static T Post <T>(string url, string postData = null, HttpRequestResultType type = HttpRequestResultType.Json, Action <T> resultCallback = null) where T : class, new()
        {
            var result = Request <T>(HttpRequestType.Post, url, postData, httpRequestResultType: type);

            resultCallback?.Invoke(result);
            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// Get请求
        /// </summary>
        /// <param name="url">请求地址</param>
        /// <param name="requestParas">请求参数(json格式)</param>
        /// <param name="type">返回数据类型,支持:json、xml</param>
        /// <param name="resultCallback">处理返回结果的委托</param>
        /// <typeparam name="T"></typeparam>
        public static T Get <T>(string url, string requestParas = null, HttpRequestResultType type = HttpRequestResultType.Json, Action <T> resultCallback = null) where T : class, new()
        {
            var result = Request <T>(HttpRequestType.Get, url, requestParas, httpRequestResultType: type);

            resultCallback?.Invoke(result);
            return(result);
        }
Beispiel #3
0
 /// <summary>
 /// HTTP请求(异步)
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="type">请求类型</param>
 /// <param name="url">请求地址</param>
 /// <param name="requestParasDic">请求参数</param>
 /// <param name="timeout">请求超时时间</param>
 /// <param name="headerDic">请求头</param>
 /// <param name="cookie">请求时携带的cookie</param>
 /// <param name="referrer">伪造http_referer</param>
 /// <param name="ensureSuccess">如果 HTTP 响应的 System.Net.Http.HttpResponseMessage.IsSuccessStatusCode 属性为 false,是否引发异常。</param>
 /// <param name="httpRequestResultType"></param>
 /// <returns></returns>
 public static async Task <T> RequestAsync <T>(HttpRequestType type, string url, IDictionary <string, string> requestParasDic, TimeSpan?timeout = null, IDictionary <string, string> headerDic = null, string cookie = null, string referrer = null, bool ensureSuccess = true, HttpRequestResultType httpRequestResultType = HttpRequestResultType.Json) where T : class, new()
 {
     return(await RequestAsync <T>(type, url, JsonHelper.Serialize(requestParasDic), timeout, headerDic, cookie, referrer, ensureSuccess, httpRequestResultType));
 }
Beispiel #4
0
        /// <summary>
        /// HTTP请求(异步)
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="type">请求类型</param>
        /// <param name="url">请求地址</param>
        /// <param name="requestParas">请求参数(json格式)</param>
        /// <param name="timeout">请求超时时间</param>
        /// <param name="headerDic">请求头</param>
        /// <param name="cookie">请求时携带的cookie</param>
        /// <param name="referrer">伪造http_referer</param>
        /// <param name="ensureSuccess">如果 HTTP 响应的 System.Net.Http.HttpResponseMessage.IsSuccessStatusCode 属性为 false,是否引发异常。</param>
        /// <param name="httpRequestResultType"></param>
        /// <returns></returns>
        public static async Task <T> RequestAsync <T>(HttpRequestType type, string url, string requestParas = null, TimeSpan?timeout = null, IDictionary <string, string> headerDic = null, string cookie = null, string referrer = null, bool ensureSuccess = true, HttpRequestResultType httpRequestResultType = HttpRequestResultType.Json) where T : class, new()
        {
            if (string.IsNullOrWhiteSpace(url))
            {
                throw new ArgumentException("Value cannot be null or whitespace.", nameof(url));
            }

            var requestResult = await RequestAsync(HttpRequestType.Post, url, requestParas, timeout, headerDic, cookie, referrer, ensureSuccess);

            if (string.IsNullOrWhiteSpace(requestResult))
            {
                return(default(T));
            }

            T result;

            switch (httpRequestResultType)
            {
            case HttpRequestResultType.Json:
                result = JsonHelper.Deserialize <T>(requestResult);
                break;

            case HttpRequestResultType.Xml:
                result = XmlSerializer <T> .Instance.Deserialize(requestResult);

                break;

            default:
                throw new Exception($"Unsupported HttpRequestResultType: {httpRequestResultType.ToString()}");
            }
            return(result);
        }
Beispiel #5
0
 /// <summary>
 /// HTTP请求
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="type">请求类型</param>
 /// <param name="url">请求地址</param>
 /// <param name="requestParas">请求参数(json格式)</param>
 /// <param name="timeout">请求超时时间</param>
 /// <param name="headerDic">请求头</param>
 /// <param name="cookie">请求时携带的cookie</param>
 /// <param name="referrer">伪造http_referer</param>
 /// <param name="ensureSuccess">如果 HTTP 响应的 System.Net.Http.HttpResponseMessage.IsSuccessStatusCode 属性为 false,是否引发异常。</param>
 /// <param name="httpRequestResultType"></param>
 /// <returns></returns>
 public static T Request <T>(HttpRequestType type, string url, string requestParas = null, TimeSpan?timeout = null, IDictionary <string, string> headerDic = null, string cookie = null, string referrer = null, bool ensureSuccess = true, HttpRequestResultType httpRequestResultType = HttpRequestResultType.Json) where T : class, new()
 {
     return(RequestAsync <T>(type, url, requestParas, timeout, headerDic, cookie, referrer, ensureSuccess, httpRequestResultType).Result);
 }
Beispiel #6
0
 /// <summary>
 /// Post请求
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="url">请求地址</param>
 /// <param name="postDataDic">请求参数</param>
 /// <param name="type">返回数据类型,支持:json、xml</param>
 /// <param name="resultCallback">处理返回结果的委托</param>
 /// <returns></returns>
 public static T Post <T>(string url, IDictionary <string, string> postDataDic, HttpRequestResultType type = HttpRequestResultType.Json, Action <T> resultCallback = null) where T : class, new()
 {
     return(Post <T>(url, JsonHelper.Serialize(postDataDic), type, resultCallback));
 }