web api(GET请求方法)

8 篇文章 0 订阅
2 篇文章 0 订阅

//控制器里的方法

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Web.Security;
using Newtonsoft.Json;

namespace WebAPI.Controllers
{
    public class UserController : ApiController
    {
        //创建user数据源list
        private List<Users> _users = new List<Users> {
            new Users{ UserID=1,UserName="周凯",UserEmail="320948160@qq.com" },
            new Users{ UserID=2,UserName="凯",UserEmail="320948160@qq.com" },
            new Users{ UserID=3,UserName="周",UserEmail="320948160@qq.com" }
        };
        //点击登录时触发事件
        //存在时间限制
        [AllowAnonymous]
        [HttpGet]
        public string Login(string Account, string Password)
        {
            if (Account.Equals("admin") && Password.Equals("123"))
            {
                FormsAuthenticationTicket ticketObject =
                    new FormsAuthenticationTicket(0, Account, DateTime.Now,
                              DateTime.Now.AddHours(1), true, string.Format("{0}&{1}", Account, Password),
                              FormsAuthentication.FormsCookiePath);
                var result = new { Result = true, Ticket = FormsAuthentication.Encrypt(ticketObject) };
                return JsonConvert.SerializeObject(result);
            }
            else
            {
                var result = new { Result = false };
                return JsonConvert.SerializeObject(result);
            }

        }

        #region Get请求
        //返回一个数组
        [HttpGet]
        public IEnumerable<Users> GetUserByName(string UserName) {
            string userNameparam = HttpContext.Current.Request.QueryString["UserName"];

            return _users.Where(p => string.Equals(p.UserName, userNameparam, StringComparison.OrdinalIgnoreCase));
        }

        [HttpGet]
        public Users GetUserByid(int id) {
            int idParam =Convert.ToInt32( HttpContext.Current.Request.QueryString["id"]);
            var user = _users.FirstOrDefault(p => p.UserID == idParam);
            if (user == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            return user;
        }

        [HttpGet]
        public IEnumerable<Users> GetUserByNameId(string userName, int id)
        {
            string userNameParam = HttpContext.Current.Request.QueryString["userName"];
            int idParam = Convert.ToInt32(HttpContext.Current.Request.QueryString["id"]);
            return _users.Where(p => string.Equals(p.UserName, userNameParam, StringComparison.OrdinalIgnoreCase) && p.UserID== idParam);
        }


        [HttpGet]
        public IEnumerable<Users> Get()
        {
            return _users;
        }

        #endregion

        //user实体类
        public class Users
    {
        public int UserID { get; set; }
        public string UserName { get; set; }
        public string UserEmail { get; set; }
    }
}
}

//index页面

 

<form method="post" action="/api/users/register?id=1">


    <div class="row">
        <div class="col-md-5">


            <h2>Test </h2>
            <p>
                <input type="text" id="txtAccount" name="账号" />
                <input type="text" id="txtPassword" name="密码" />
                <input type="button" id="btnLogin" value="登陆" />
            </p>

            <p><input type="text" id="txtId" name="id" /> </p>
            <p>
                <input type="button" id="btnGet1" value="Get1" />
                <input type="button" id="btnGet2" value="Get2" />
                <input type="button" id="btnGet3" value="Get3" />
                <input type="button" id="btnGet4" value="Get4" />
            </p>
            <p>
                <input type="button" id="btnGet5" value="Get5" />
                <input type="button" id="btnGet6" value="Get6" />
                <input type="button" id="btnGet7" value="Get7" />
                <input type="button" id="btnGet8" value="Get8" />
                <input type="button" id="btnGet9" value="Get9" />
            </p>
        </div>

    </div>


    <script src="~/Scripts/jquery-1.10.2.js"></script>
    <script type="text/javascript">
        $(function () {
            var ticket = "";//登陆后放在某个html里面,ajax都得带上

            //点击登录触发事件
            $("#btnLogin").on("click", function () {
                

                //获取俩个文本框的值
                var acconunt = $("#txtAccount").val();
                var password = $("#txtPassword").val();
                //注意:data中的变量名和参数尽量要不一样否则会提示找不到资源
                $.ajax({
                    url: "/api/user/Login",
                    type: "GET",
                    data: { "Account": acconunt, "Password": password },
                    success: function (data) {
                        debugger;
                        var result = JSON.parse(data);
                        if (result.Result) {
                            ticket = result.Ticket;
                            alert(result.Ticket);
                        } else {
                            alert("failed");
                        }
                    },
                    datatype: "json"
                });
            });

            //btnGet1
            $("#btnGet1").on("click", function () {
                $.ajax({
                    url: "/api/user/GetUserByName",
                    type: "GET",
                    data: { "userName": "明凯" },
                    beforeSend: function (xhr) {
                        //发送ajax请求之前向http的head里面加入验证信息
                        xhr.setRequestHeader('Authorization', 'BasicAuth ' + ticket);
                    },
                    success: function (data) {
                        alert(data[0].UserID);
                        alert( data[0].UserName);
                        alert(  data[0].UserEmail)
                    },
                    datatype: "json"

                });
            })

            //传递一个参数
            //btnGet2
            $("#btnGet2").on("click", function () {
                $.ajax({
                    url: "/api/user/GetUserByid",
                    type: "GET",
                    data: { "id": $("#txtId").val() },
                    beforeSend: function (xhr) {
                        //发送ajax请求之前向http的head里面加入验证信息
                        xhr.setRequestHeader('Authorization', 'BasicAuth ' + ticket);
                    },
                    success: function (data) {
                        debugger;
                        alert(data.UserEmail)
                    },
                    datatype: "json"

                });
            })

             //传递两个参数
            //btnGet3
            $("#btnGet3").on("click", function () {
                $.ajax({
                    url: "/api/user/GetUserByid",
                    type: "GET",
                    data: { "userName": "明凯", "id": $("#txtId").val() },
                    beforeSend: function (xhr) {
                        //发送ajax请求之前向http的head里面加入验证信息
                        xhr.setRequestHeader('Authorization', 'BasicAuth ' + ticket);
                    },
                    success: function (data) {
                        debugger;
                        alert(data.UserEmail)
                    },
                    datatype: "json"

                });
            })
        })
        
            //btnGet4 无参数
        $("#btnGet4").on("click", function () {//无参数
            $.ajax({
                url: "/api/user/Get",
                type: "get",
                data: "",
                success: function (data)
                {
                    for (var i = 0; i < data.length; i++) {
                        alert(data[i].UserName);
                    }
                },
                datatype: "json"
            });
        });

    </script>


</form>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值