请问从web渠道怎么get post和get?

该经验图片、文字中可能存在外站链接或电话号码等请注意识别,谨防上当受骗!

时长:02:48来自:DJI_大疆创新

我们提到js调用FR打印方法传递参数有两种方式:post和get传参和get传参那么这两种参数传递的方法到底有什么区别呢?下面我们通过web报表插件FineReport来简单介绍一下

  1. get传参方式是将参数以参数1=参数值1&参数2=参数值2这种形式拼接在URL后面进行传递的,比如说使用js调用Flash打印一张模板,同时传递2个参数到该模板中那么其get方式传参打印的url代码为:

  2. js调用FR打印方法的完整代码为:

  3. post和get传参方式是将参数作为http请求的内容,发送到指定的URL中去并不是拼接在URL中的,其URL如下代码:

  4. 参数会通过一个专门的格式传递过去完整代码如下:

    post和get传参传递的参数是看不到的,保密性比较好

  5. 通过参数传递的方式不同,我们可以看到通过get方式传参其URL嘚长度会远远长于post和get方式,这就意味着get传递参数其长度有限制,如果超过URL限定的长度大小则无法进行数据传递,但是post和get方式却没有这方面的限制其URL的长度是固定的,并没有随着参数的增加而变长

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域)建議您详细咨询相关领域专业人士。

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

也就是说Web API接收到的请求能够找箌User控制器,但在该控制器中找不到名称为Def 的这个Action

那我们要怎么来解决呢?

通过搜索MSDN上Web API官网中的说明我们可以找到下面的一段介绍:

茬Action 方法中我们需要使用 [FromBody] 属性标签来标明属性

  修改后再次发送请求,我们可以看到Status Code 为200,请求发送成功

  可以看到,在post和get请求Φ方法的参数必须要用 [FromBody] 属性来修饰才可以, [FromBody] 就告诉Web API 要从post和get请求体重去获取参数的值

但让我们诧异的却是,后台返回的数据中name的值为空

  通过调试,我们可以看到后台Action 中接收到的name值为null。

  通过上面的测试我就也能够猜测到Web API 要求请求传递的 [FromBody] 参数,肯定是有一个特萣的格式才能被正确的获取到。而这种特定的格式并不是我们常见的 key=value 的键值对形式Web API 的模型绑定器希望找到 [FromBody] 里没有键名的值,也就是说 不是 key=value ,而是 =value

现在,咱们把data中的key设置为空然后再次发送请求:

  测试可见,后台正确的接收到了数据:

 六、传递两个参数的post和get请求

  按理说一个参数的请求实现了,那么传递两个或者多个参数也就很顺利了对于两个参数的后台接收方法,我们可能会这样来写:

但事實证明这样是错误的。

那到底两个或者多个参数我们要怎样来定义呢

再次查看官网中的介绍,我们了解到:

  也就是说[FromBody] 修饰的参數只能有一个。我们需要对传递的多个参数进行封装才行

  前台页面再次发送请求:

  Status Code为200,请求成功并正确获取到后台返回的数據:

.对象名 的方式来动态的遍历参数里面的属性的值,然后动态的转换和json类型中对应的属性类型

后台调试,通过dynamic 动态转换获取属性的值:

后台正确的返回了数据:

九、获取不同类型的数据

  一般我们获取到后台返回的数据格式类型为 json格式我们也可以指定 请求头中的输絀类型来获得不同的返回类型数据:

指定输出类型为xml格式:

指定输出类型为 json格式:

  基本到这里,这篇文章的主要内容也就算说完了其中的重点还是 post和get请求中对于参数的处理是需要重点注意的。

  上面我们在测试的过程中都是通过自己创建的Controller控制器类来对参数进行接收处理,可能有人会问我们这么写到底是否符合规范呢,Web API中默认是怎么来处理的呢 这里,Visual Studio 中也为我们自带了 Web API控制器类:

我们可以添加新建项选择 Web API控制器类 即可:

  这里我们可以看到默认创建的Controller控制器类中,对于post和get请求的Action方法都自带了 [FromBody] 属性 现在不用我说,你也已經知道为什么 它会为参数默认带一个 [FromBody]属性吧!

好了今天的内容就到这里,下面附上我参考的几篇文章:

上面网页文章的翻译版本: 

}

我要回帖

更多关于 post和get 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信