/// <summary> /// 执行UploadFile请求 /// 可接受IDictionary<string,object>,IEnumerable<keyvaluePair<string,object>>, /// IEnumerable<object>,string(a=a1&b=b1),object等类型参数 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="url">请求url</param> /// <param name="requestParams">请求参数</param> /// <param name="fileList">文件路径列表</param> /// <returns></returns> public AfterDto <T> UploadFileAsync <T>(string url, object requestParams = null, List <string> fileList = null) { AfterDto <T> afterDto = null; Task t = new Task(() => { string resultString = UploadFile(url, requestParams, fileList); if (typeof(T) == typeof(string)) { T result = (T)Convert.ChangeType(resultString, typeof(T)); afterDto.DoAfter(result); } else { afterDto.DoAfter(JsonHelper.DeserializeObject <T>(resultString)); } }); t.Start(); return(afterDto); }
/// <summary> /// 执行Get请求 /// 可接受IDictionary<string,object>,IEnumerable<keyvaluePair<string,object>>, /// IEnumerable<object>,string(a=a1&b=b1),object等类型参数 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="url">请求URL</param> /// <param name="requestParams">请求参数</param> /// <returns></returns> public AfterDto <T> GetAsync <T>(string url, object requestParams = null, IDictionary <string, string> headerParams = null, int?timeout = 60000, string userAgent = null, CookieCollection cookies = null) { AfterDto <T> afterDto = null; Task t = new Task(() => { string resultString = Get(url, requestParams); if (typeof(T) == typeof(string)) { T result = (T)Convert.ChangeType(resultString, typeof(T)); afterDto.DoAfter(result); } else { afterDto.DoAfter(JsonHelper.DeserializeObject <T>(resultString)); } }); t.Start(); return(afterDto); }
/// <summary> /// 执行Post请求 /// 可接受IDictionary<string,object>,IEnumerable<keyvaluePair<string,object>>, /// IEnumerable<object>,string(a=a1&b=b1),object等类型参数 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="url">请求url</param> /// <param name="requestParams">请求参数</param> /// <param name="contentType">请求内容类型</param> /// <returns></returns> public AfterDto <T> PostAsync <T>(string url, object requestParams = null, HttpContentType contentType = HttpContentType.Json) { AfterDto <T> afterDto = null; Task t = new Task(() => { string resultString = Post(url, requestParams, contentType); if (typeof(T) == typeof(string)) { T result = (T)Convert.ChangeType(resultString, typeof(T)); afterDto.DoAfter(result); } else { afterDto.DoAfter(JsonHelper.DeserializeObject <T>(resultString)); } }); t.Start(); return(afterDto); }
/// <summary> /// 下载文件 /// </summary> /// <param name="url">请求URL</param> /// <param name="requestParams">请求参数</param> /// <param name="filePath">文件路径</param> /// <param name="overWrite">是否覆盖</param> /// <param name="progressChanged">进度通知</param> /// <returns></returns> public AfterDto <int> PostDownloadAsync <T>(string url, object requestParams, string filePath, bool overWrite = false, ProgressChangedEventHandler progressChanged = null) { AfterDto <int> afterDto = null; Task t = new Task(() => { PostDownload(url, requestParams, filePath, overWrite, progressChanged); afterDto.DoAfter(1); }); t.Start(); return(afterDto); }