Пример #1
0
        /// <summary>
        /// 从云平台调用指定方法并返回指定类型(T)信息
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="method"></param>
        /// <param name="mParams"></param>
        /// <returns></returns>
        private static BaseCloudResponse <T> GetCloudResponse <T>(string method, DiscuzCloudMethodParameter mParams)
        {
            string timeStamp = mParams.Find("sTimestamp");

            timeStamp = string.IsNullOrEmpty(timeStamp) ? Utils.ConvertToUnixTimestamp(DateTime.Now).ToString() : timeStamp;

            string postData = string.Format("format={0}&method={1}&sId={2}&sig={3}&ts={4}{5}"
                                            , FORMAT, method, DiscuzCloudConfigs.GetConfig().Cloudsiteid,
                                            GetCloudMethodSignature(method, timeStamp, mParams), timeStamp, mParams.GetPostData());

            string response = Utils.GetHttpWebResponse(CLOUD_URL, postData);

            try
            {
                return(JavaScriptConvert.DeserializeObject <BaseCloudResponse <T> >(response));
            }
            catch
            {
                BaseCloudResponse <string> err    = JavaScriptConvert.DeserializeObject <BaseCloudResponse <string> >(response);
                BaseCloudResponse <T>      errObj = new BaseCloudResponse <T>();
                errObj.ErrCode    = err.ErrCode;
                errObj.ErrMessage = err.ErrMessage;
                return(errObj);
            }
        }
Пример #2
0
        private static BaseCloudResponse <T> GetCloudResponse <T>(string method, DiscuzCloudMethodParameter mParams)
        {
            string text = mParams.Find("sTimestamp");

            text = (string.IsNullOrEmpty(text) ? Utils.ConvertToUnixTimestamp(DateTime.Now).ToString() : text);
            string postData = string.Format("format={0}&method={1}&sId={2}&sig={3}&ts={4}{5}", new object[]
            {
                FORMAT,
                method,
                DiscuzCloudConfigInfo.Current.Cloudsiteid,
                DiscuzCloud.GetCloudMethodSignature(method, text, mParams),
                text,
                mParams.GetPostData()
            });
            string httpWebResponse = Utils.GetHttpWebResponse(CLOUD_URL, postData);
            BaseCloudResponse <T> result;

            try
            {
                result = JavaScriptConvert.DeserializeObject <BaseCloudResponse <T> >(httpWebResponse);
            }
            catch
            {
                BaseCloudResponse <string> baseCloudResponse = JavaScriptConvert.DeserializeObject <BaseCloudResponse <string> >(httpWebResponse);
                result = new BaseCloudResponse <T>
                {
                    ErrCode    = baseCloudResponse.ErrCode,
                    ErrMessage = baseCloudResponse.ErrMessage
                };
            }
            return(result);
        }
Пример #3
0
        public static string GetCloudTestResponse(string method, DiscuzCloudMethodParameter mParams)
        {
            string timeStamp = mParams.Find("sTimestamp");

            timeStamp = string.IsNullOrEmpty(timeStamp) ? Utils.ConvertToUnixTimestamp(DateTime.Now).ToString() : timeStamp;
            string postData = string.Format("format={0}&method={1}&sId={2}&sig={3}&ts={4}{5}"
                                            , FORMAT, method, DiscuzCloudConfigs.GetConfig().Cloudsiteid,
                                            GetCloudMethodSignature(method, timeStamp, mParams), timeStamp, mParams.GetPostData());

            return(Utils.GetHttpWebResponse(CLOUD_URL, postData));
        }