我想知道如何通过输入网址来测试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
答案 0 :(得分:1)
由于它是一个POST请求,您无法通过键入地址(这些是GET请求,不包含正文)在浏览器中对其进行测试。
要测试这些类型的内容,您可以使用Postman之类的内容 或者Rest Console(如果你正在使用Chrome),无论你的浏览器扩展商店是什么,都会有大量的这类东西。
您可以使用的某些工具类似于Fiddler
这将让你看到请求和响应的样子,你也可以更改/修改它们,虽然它可能比PostMan或Rest Console(也更强大)更难使用