예제 #1
0
        public T PostFiles <T>(string url, object pars = null, ApiPostFile file = null)
        {
            var type = Method.POST;
            T   data = PostFile <T>(url, type, pars, file);

            return(data);
        }
예제 #2
0
        /// <summary>
        /// 获取API信息结果
        /// </summary>
        /// <typeparam name="T">结果数据类型</typeparam>
        /// <param name="url">api地址</param>
        /// <param name="type">方法类型</param>
        /// <param name="pars">参数</param>
        /// <param name="file">附件</param>
        /// <returns></returns>
        private T PostFile <T>(string url, Method type, object pars = null, ApiPostFile file = null)
        {
            Request.Method = type;

            if (pars != null)
            {
                Request.AddObject(pars);
            }
            if (file != null)
            {
                file.FormName = "AttachFile";
                int    fileLength = Convert.ToInt32(file.FileStream.Length);
                byte[] fileBytes  = new byte[fileLength];
                Request.AddFile(file.FormName, fileBytes, file.SourceFileName);
            }
            var client = new RestClient(API_SITE + "/api" + url);

            client.CookieContainer = new System.Net.CookieContainer();
            IRestResponse response = client.Execute(Request);

            if (response.ErrorException != null)
            {
                var s = response.Content;
                LogHelper.WriteLog_LocalTxt("调用API出错:" + s);
                throw new Exception("请求出错");
            }
            try
            {
                var s    = response.Content;
                T   data = JsonConvert.DeserializeObject <T>(response.Content);
                return(data);
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog_LocalTxt("序列化结果出错:" + ex.ToString());
            }
            return(default(T));
        }