WebAPI的Get和Post访问

        /// <summary>
        /// MVC 调用webapi接口返回框架快捷按钮和一级菜单(Get)
        /// </summary>
        /// <param name="userId">登录名</param>
        /// <param name="sysShortName">系统简称 如:crm scm ssn</param>
        /// <param name="pwd">密码</param>
        /// <param name="factoryId">工厂编号</param>
        /// <returns></returns>
        public ShortcutResult ReturnShortcutBtn(string userId, string sysShortName, string pwd, string factoryId)
        {
            ShortcutResult shrotcut_result = new ShortcutResult();
            try
            {
                using (var httpClient = new HttpClient())
                {
                    string WebAPIUrl = string.Format(ReturnAppSettingValue("OAShortcut") + "?sysShortName={0}&uid={1}&pwd={2}&factoryId={3}", sysShortName, userId, pwd, factoryId);

                    var task = httpClient.GetAsync(WebAPIUrl);
                    var result = task.Result.Content.ReadAsStringAsync().Result;
                    if (task.Result.IsSuccessStatusCode == false)
                        throw new Exception("接口访问失败:" + task.Result.StatusCode);

                    MenuResult list = JsonConvert.DeserializeObject<MenuResult>(result);

                    if (list != null && list.Success)
                    {
                        var firstMenu = JsonConvert.DeserializeObject<List<FirstLvlMenu>>(list.Menu).OrderBy(t => t.Menu_order).ToList();
                        var btns = JsonConvert.DeserializeObject<List<ShortCutBtn>>(list.Button).OrderBy(t => t.Btn_Order).ToList();

                        shrotcut_result = new ShortcutResult(firstMenu, btns);
                    }
                    else
                    {
                        throw new Exception("WebAPI无值返回或访问失败");
                    }
                }
            }
            catch (Exception ex)
            {
                WriteLog(ex.Message, LogEnum.Error);
                throw ex;
            }

            return shrotcut_result;
        }

  

        /// <summary>
        /// MVC 调用webapi接口返回退货单详情页操作按钮(Post)
        /// </summary>
        /// <returns></returns>
        public MenuCommand ReturnCommandBtn(string userId, string menuId, string pwd, string factoryId)
        {
            MenuCommand menuCmd_result = new MenuCommand();
            try
            {
                using (var httpClient = new HttpClient())
                {
                    string WebAPIUrl = ReturnAppSettingValue("ReturnGoodsCommandBtn");
                    HttpContent postContent = new FormUrlEncodedContent(new Dictionary<string, string>()
                    {
                       {"menuId",menuId},
                       {"uid",userId},
                       {"pwd",pwd},
                       {"factoryId",factoryId}
                    });
                    var task = httpClient.PostAsync(WebAPIUrl, postContent);
                    var result = task.Result.Content.ReadAsStringAsync().Result;
                    if (task.Result.IsSuccessStatusCode == false)
                        throw new Exception("接口访问失败:" + task.Result.StatusCode);

                    if (!string.IsNullOrEmpty(result))
                    {
                        menuCmd_result = JsonConvert.DeserializeObject<MenuCommand>(result);
                    }
                }
            }
            catch (Exception ex)
            {
                WriteLog(ex.Message, LogEnum.Error);
                throw ex;
            }

            return menuCmd_result;
        }

  

        //传递Json格式串

     /// <summary>
        /// 返回Token
        /// </summary>
        /// <returns></returns>
        public APIToken ReturnToken(string userId, string pwd)
        {
            APIToken token = new APIToken();
            try
            {
                string WebAPIUrl = ReturnAppSettingValue("ReturnGoodsToken"); 
                string postData = "{\"UserId\":\"" + userId + "\",\"PassWord\": \"" + pwd + "\"}";

                HttpContent httpContent = new StringContent(postData);
                httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                HttpClient httpClient = new HttpClient();

                HttpResponseMessage response = httpClient.PostAsync(WebAPIUrl, httpContent).Result;

                if (response.IsSuccessStatusCode)
                {
                    string responseJson = response.Content.ReadAsStringAsync().Result;
                    token = JsonConvert.DeserializeObject<APIToken>(responseJson);
                }
                else
                {

                } 
                
            }
            catch (Exception ex)
            {
                WriteLog(ex.Message, LogEnum.Error);
                throw ex;
            }
            return token;
        }

  

转载于:https://www.cnblogs.com/seanchang/p/6077003.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值