将POST称为URL ASP.NET web api

时间:2014-07-08 14:35:53

标签: asp.net-mvc-4

我想知道如何通过输入网址来测试POST。 这是我的路线配置

config.Routes.MapHttpRoute(
                 name: "myWebApi",
                 routeTemplate: "api/mywebapi/{action}/{ID}/{DeptID}",
                 defaults: new { Controller = "mywebapi", ID = @"\d+", DeptID = @"\d+" }
             );

以编程方式这就是我调用POST的方式 我有3个文本框和一个按钮。当用户点击按钮时,下面的程序被调用

function parseform(button) {
            var id = $("#ID").val();
            var deptid = $("#DeptID").val();
            var name = $("#Name").val();

            var inputdata = {
                id: id,
                deptid: deptid,
                name: name
            }

            if (button.attr('value') === "POST") {
                postdata(inputdata);
            } else {
                console.log("ERROR");
            }

        }
 function postdata(inputdata) {
            $("#response").text("Posted");
            $.ajax({
                type: "POST",
                dataType: "json",
                url: "api/mywebapi/Post/",
                contentType: "application/json",
                data: JSON.stringify(inputdata),
                xhrFields: {
                   withCredentials: true
                },
                success: function (data, status, xhr) {

                   $("#response").text(status+" - "+data)
                },
                error: function (xhr, status, error) {

                    var json = jQuery.parseJSON(xhr.responseText);

                    $("#response").text(status)

                }
            });
        }

在控制器中

[System.Web.Http.AcceptVerbs("POST")]
        public void Post([FromBody]mywebapi value)
        {
        saves to database
        }                

这是我测试的内容

http://localhost:222/api/mywebapi/Post/new newwebapi ({"id":"1","deptid":"2","name":"testing"})

我收到错误。如何测试?

感谢 [R

1 个答案:

答案 0 :(得分:1)

由于它是一个POST请求,您无法通过键入地址(这些是GET请求,不包含正文)在浏览器中对其进行测试。

要测试这些类型的内容,您可以使用Postman之类的内容 或者Rest Console(如果你正在使用Chrome),无论你的浏览器扩展商店是什么,都会有大量的这类东西。

您可以使用的某些工具类似于Fiddler

这将让你看到请求和响应的样子,你也可以更改/修改它们,虽然它可能比PostMan或Rest Console(也更强大)更难使用