get占位符传多个参数_C#进阶系列——WebApi 接口参数不再困惑:传参详解

前言

本篇针对初初使用WebApi的同学们,比较基础,有兴趣的且看看。本篇打算通过get、post、put、delete四种请求方式分别谈谈基础类型(包括int/string/datetime等)、实体、数组等类型的参数如何传递。

一、get请求

对于取数据,我们使用最多的应该就是get请求了吧。下面通过几个示例看看我们的get请求参数传递。

1、基础类型参数

f3182c37d5cf426c64a8b7d2e5a53ad5.png
ea9b19da17ecba069ef6fed92a5b7062.png

参数截图效果

d3d663b7bfb9585b371841cec4d19a78.gif

这是get请求最基础的参数传递方式,没什么特别好说的。

2、实体作为参数

如果我们在get请求时想将实体对象做参数直接传递到后台,是否可行呢?我们来看看。

37c4f0cb8c40c28a8228d93aa00fdc3e.png
c965836825f334ffad46c312bf2018cd.png
bb1d74e7e42d7d922c637ecc3202345f.png

测试结果

98854d89c9554e64007fb4ad31685503.gif

由上图可知,在get请求时,我们直接将json对象当做实体传递后台,后台是接收不到的。这是为什么呢?我们来看看对应的http请求

012af3cee58d1cfa4263cfd7bf7b4492.png

原来,get请求的时候,默认是将参数全部放到了url里面直接以string的形式传递的,后台自然接不到了。

原因分析:还记得有面试题问过get和post请求的区别吗?其中有一个区别就是get请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),而post请求则是放在http协议包的包体中。

根据园友们的提议,Get请求的时候可以在参数里面加上[FromUri]即可直接得到对象。还是贴上代码:

440ca185f9ae4655e1864e4a0e34df24.png
c43cdf5a47d2be7d531760675b743920.png

得到结果:

8c181f49433d7e9d57bca0623dcb4e2c.png

如果你不想使用[FromUri]这些在参数里面加特性的这种“怪异”写法,也可以采用先序列化,再在后台反序列的方式。

638a589a5bfd6fe7e7c63f9fd219b45f.png
5268ff3b256679d972e73d60d2c3b184.png
b5a38fe4763e8e611ed14426181a93f7.png

这样在后台得到我们序列化过的对象,再通过反序列化就能得到对

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值