WEBAPI传参及默认首页设置
开发工具:VS2017
创建WEBAPI,
1.选择ASP.NET Core Web应用程序

2.选择如下,HTTPS配置勾选去掉,暂不配置

3.“属性”中调试默认界面及launchsettings.json


4.调试以后默认页面

5.WEBAPI设置自定义首页
在wwwroot目录下添加需要的首页index.html

将Startup.cs里面的 Configure代码调整为如下:
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { //自定义首页 DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions(); defaultFilesOptions.DefaultFileNames.Clear(); defaultFilesOptions.DefaultFileNames.Add("index.html"); app.UseDefaultFiles(defaultFilesOptions); app.UseStaticFiles(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseMvc(); }
index.html代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>The AP For CallWebApi</title>
<script src="js/jquery-3.7.1.min.js"></script>
<script type="text/javascript">
//var arr = [
// { "username": "Tom", "password": "tom" },
// { "username": "Jerry", "password": "jerry" }
//];//api/sap
var arr = { "username": "Tom", "password": "tom" };//api/values
function CallApi() {
//alert("show");
$.ajax({
type: "post",
url: "/api/values/",//单笔实体
//url: "/api/sap/",//多笔实体
//url:"http://10.0.31.154/WebApi/api/values",
contentType: "application/json",
data: JSON.stringify(arr),
success: function (data, status) {
if (status = "success") {
$("#info").html(data);
}
else {
alert("Faile");
}
}
});
}
</script>
</head>
<body>
<button onclick="CallApi()">CallWebApi</button>
<div id="info"></div>
</body>
</html>
此时保存后重启调试,显示的首页仍为***/api/values,需将项目->属性->调试或launchsettings.json调整为如下:


保存后重启调试即可显示自定义首页。
6.WEBAPI传参
POST:单笔实体
// POST api/values [HttpPost] public string Post(SapCls obj)//如未定义相应的类,可使用(dynamic obj)传递单笔资料 { string rst = ""; rst = obj.username + ":" + obj.password; return rst; }
多笔实体:
// POST api/sap/ [HttpPost] public string Post([FromBody] List<dynamic> objs)//[FromBody] List<SapCls> objs { string rst = ""; foreach (dynamic obj in objs) { rst = rst + obj.username + ":" + obj.password + ";\n"; //rst = rst + obj.UserName + ":" + obj.PassWord + ";\n"; } if (rst == "") { rst = "Null"; } if (objs.Count == 0) { rst = "Count is 0"; } return rst; }
前端传参数时contentType需设置为 "application/json",实体需要序列化:data: JSON.stringify(arr)。
以上部分仅为本机测试调试使用,前端跨域调用暂为涉及。
浙公网安备 33010602011771号