• WebApi传参总动员(一)


    目前自己的工作和WebApi相关,免不了传入、接收参数。以前的老办法是从请求流中获取json,再反序列化,这中间有2个不能控制的地方,一个是流,一个是反序列化,都需要try,总感觉非常的不爽。因此对WebApi传参做了深入的研(bai)究(du)。

    正常的WebApi有三种接收参数的方式:

    1、以json字符串的形式传入。从请求的输入流获取传入的json字符串,再反序列化成自己需要的实体。利用的是Request.InputStream。

    2、以url传参的形式传入。WebApi自动转换成对应的实体。类似于Form表单的提交,如name=aaa&pwd=bbb&token=xxx,需要请求头的ContentType=“application/x-www-form-urlencoded

    3、以json字符串的形式传入,WebApi自动转换成对应的实体。需要请求头的ContentType="application/json"

    先从最简单的string入手。逐一爬坑。

    Web端

    public class ValuesController : ApiController
        {
            [HttpPost]
            public string GetData(string name)
            {
                return "我爱" + name;
            }
        }

    html端js

                $('#btn').click(function () {
                    $.ajax({
                        type: "post",
                        url: "http://localhost:7601/api/values/GetData",
                        data: "刘亦菲",
                        success: function (r) {
                            alert(r);
                        }
                    });
                });
    

    结果碰到了第一个坑

      

    结论:http://localhost:7601/api/values/GetData 和 http://localhost:7601/api/values/GetData?name=刘亦菲 是两个不同的url

    将上面js中代码修改
                $('#btn').click(function () {
                    $.ajax({
                        type: "post",
                        url: "http://localhost:7601/api/values/GetData?name=刘亦菲",
                        success: function (r) {
                            alert(r);
                        }
                    });
                });
    

    得到了自己想要的结果  

  • 相关阅读:
    沉痛的一天
    PowerBuilder之5年经验谈(一之1)--PB对Unicode的支持
    C# Client API for Sphinx (support to 0.99)
    F#学习笔记基本类型
    F#学习笔记方法
    接口串联
    eclipse 中如何设置注释?
    软件测试过程中手机截屏
    Postan中执行接口时使用JSON数据,那么什么是 JSON?
    MySQL使用dump备份以及恢复备份
  • 原文地址:https://www.cnblogs.com/luhuanong/p/4923871.html
Copyright © 2020-2023  润新知