多种情况下的 get和post 访问 WebApi

总是会遇到一些小朋友反复在问api的调用问题

每次做项目总有小朋友会在问我的api怎么访问不了,你帮我看看吧,所以这里记录下一些问题,方便以后查阅。支持单个参数,json类型,实体类型访问,这里主要针对post方法。

1、后端webapi写法

以下给了4个方式的api接口

 		[AllowAnonymous]
        [HttpPost]
        public XResult Create(UserInputDto userInputDto)
        {
            return new XResult { Success = true };
        }

        [AllowAnonymous]
        [HttpPost]
        public XResult Creates(JObject jsonData)
        {
            var c = jsonData.Value<string>("userName");
            return new XResult { Success = true };
        }

        [AllowAnonymous]
        [HttpPost]
        public XResult Createw([FromBody]string userName)
        {
            return new XResult { Success = true };
        }

		[HttpGet]
        public XResult GetData([FromHeader]GetOrderByParamDto dto)
        {
            return new XResult { Success = true };
        }

2、前端restsharp调用

		static string Create()
        {
            var dto = new UserInputDto
            {
                UserName = "1",
                RealName = "2"
            };

            var client = new RestClient();
            client.Timeout = -1;
            var url = "https://localhost:44335/Basic/User/Create";
            var token = "Bearer sdfjjoijiihhih";
            client.AddDefaultHeader("Authorization", token);
            var request = new RestRequest(new Uri(url), Method.POST);
            request.AddJsonBody(dto);
            IRestResponse response = client.Execute(request);
            return response.Content;
        }

        static string Create2()
        {
            var client = new RestClient();
            client.Timeout = -1;
            var url = "https://localhost:44335/Basic/User/Creates";
            var token = "Bearer sdfjjoijiihhih";
            client.AddDefaultHeader("Authorization", token);
            var request = new RestRequest(new Uri(url), Method.POST);
            var data = new { userName = "1", realName = "2" };
            request.AddJsonBody(data);
            IRestResponse response = client.Execute(request);
            return response.Content;
        }

        static string Create3()
        {
            var client = new RestClient();
            client.Timeout = -1;
            var url = "https://localhost:44335/Basic/User/Createw";
            var token = "Bearer sdfjjoijiihhih";
            client.AddDefaultHeader("Authorization", token);
            var request = new RestRequest(new Uri(url), Method.POST);
            request.AddParameter("application/json", "1", ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
            return response.Content;
        }
		
		//实体参数(前端拼接成字符串)方式访问webapi示例
		static Task<XResult> GetByParam(GetOrderByParamDto dto)
        {
            var query = new StringBuilder("?");
            var propertys = dto.GetType().GetProperties();
            foreach (PropertyInfo pi in propertys)
            {
                if (pi.CanRead)
                {
                    if (query.Length > 1)
                    {
                        query.Append("&");
                    }
                    query.Append($@"{pi.Name}={pi.GetValue(dto)}");
                }
            }
            //拼接字符串访问地址
            var server = "https://localhost:44335/Test/GetData"+query.ToString();
            var url = server;
            var request = new RestRequest(new Uri(url), Method.GET);
            request.AddHeader("Content-Type", "application/json");
            var response = client.ExecuteAsync(request);
            return response.GetXResultAsync();
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值