WebApi调用通用方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebApi调用通用方法相关的知识,希望对你有一定的参考价值。

WebApi传递基础参数的时候可能会有各种各样的问题,有的需要在服务端增加[FromBody]的特性,有的需要增加一层封装为实体,有的用动态类型,下面介绍一个方便的调用方法。通过WebClient类。代码如下,需要什么参数只需要在QueryString中添加即可。

 try
                {
                    WebClient client = new WebClient();
                    //client.QueryString.Add("account", "冯宝宝");
                    //client.QueryString.Add("password", "7777");
                    client.QueryString.Add("name", "冯宝宝");
                    client.Encoding = Encoding.UTF8;

                    client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                    //string result = client.UploadString("http://localhost:51151/Api/Users/Login", "");
                    string result = client.UploadString("http://localhost:51151/Api/Users/WithStringParamNoFromBody", "");
                }
                catch (Exception ex)
                {

                }

后端WebApi代码如下:

 [AllowAnonymous]
        [HttpPost]
        public IEnumerable<Users> WithStringParamNoFromBody(string name)
        {
            return _userList;
        }

                 [AllowAnonymous]
        [HttpPost]
        public string Login(string account, string password)
        {
            if (account.Equals("冯宝宝") && password.Equals("7777"))
            {
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(0,
                    account,
                    DateTime.Now,
                    DateTime.Now.AddMinutes(5),
                    true,
                    $"{account}&{password}",
                    FormsAuthentication.FormsCookiePath);
                var result = new { Result = true, Ticket = FormsAuthentication.Encrypt(ticket) };
                return JsonConvert.SerializeObject(result);
            }
            else
            {
                var result = new { Result = false };
                return JsonConvert.SerializeObject(result);
            }
        }

以上是关于WebApi调用通用方法的主要内容,如果未能解决你的问题,请参考以下文章

通用 模拟下载文件保存方法

偷懒小工具 - SSO单点登录通用类(可跨域)(上)

Eclipse 中的通用代码片段或模板

WebApi接口 - 如何在应用中调用webapi接口

step_by_step_webapi执行时间

偷懒小工具 - 通用单点登录类(可跨域)