Exemple #1
0
        public string AddOrg()
        {
            var coutmodel = new SSInterfaceResultModel
            {
                ServiceURL     = CommFunction.GetBaseAddress() + "api/Org/AddOrg",
                ParameterModel = strTerminalNo
            };
            var countresult = new SSInterfaceAction().Send(coutmodel, "UMLServiceKey", "a4478d501b74ee89cff5743cd920bc4f");
            var str         = Newtonsoft.Json.JsonConvert.DeserializeObject <string>(countresult.Result);

            return(str);
        }
        /// <summary>
        /// 发送请求
        /// </summary>
        /// <param name="model">参数Model</param>
        /// <param name="userName">开放api用户名</param>
        /// <param name="userPwd">开放api密码</param>
        /// <param name="cacheDay">默认缓存天数</param>
        /// <returns></returns>
        public SSInterfaceResultModel Send(SSInterfaceResultModel model, string userName, string userPwd, int cacheDay = 7)
        {
            if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(userPwd))
            {
                model.ResponseCode     = 10001;
                model.ExceptionMessage = "用户名或者密码不能为空!";
                return(model);
            }

            var client = new HttpClient();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", SSSecurity.GetBase64(userName + ":" + userPwd));
            var result = new HttpResponseMessage();

            try
            {
                switch (model.SendMethod.ToLower())
                {
                case "get":
                    result = client.GetAsync(model.ServiceURL).Result;
                    break;

                case "post":
                    var jsonPatam         = JsonConvert.SerializeObject(model);
                    var encryptedModelStr = DESEncrypt.Encrypt(jsonPatam, userPwd);
                    result = client.PostAsync(model.ServiceURL, encryptedModelStr, new JsonMediaTypeFormatter()).Result;
                    break;
                }
                model.ResponseCode     = (int)result.StatusCode;
                model.ExceptionMessage = result.ReasonPhrase;
                model.Result           = result.Content.ReadAsStringAsync().Result;
                SaveCache(userName + userPwd + model.ServiceURL + JsonConvert.SerializeObject(model.ParameterModel), model.Result, cacheDay);
            }
            catch (Exception ex)
            {
                model.ResponseCode     = 503;
                model.ExceptionMessage = ex.ToString();
                var cacheResult = GetCache(userName + userPwd + model.ServiceURL + JsonConvert.SerializeObject(model.ParameterModel));
                if (cacheResult == null)
                {
                    return(model);
                }
                model.ResponseCode     = 200;
                model.ExceptionMessage = string.Empty;
                model.Result           = cacheResult;
            }
            return(model);
        }