搭建测试环境
1.选择Web应用程序
2.选择API服务。如果是已存在的项目,添加对应的控制器,选择API服务
3.Value控制器,新增的API控制器必须继承 ApiController
4.Api路由。 可以在API路由那边,增加一个方法参数, routeTemplate: "api/{controller}/{action}/{id}",自由的定义方法名称
如何调用:https://www.jianshu.com/p/26999e75cfba,这里面主要讲解了,如何传递参数给原本的post方法,参数名是[FromBody]string value;
通过Post请求的时候,只穿key/value,其中key必须为空,value可以是字符串,就可以在服务器端接收到对应的参数了。
这个方法并不是太推荐,总不能将所有的参数都放一个value,然后通过json解析去实现吧。另一个实现类的方法也不推荐,毕竟要实现多少,就需要编写多少个类,太过于麻烦
传入参数可以有四种,对应服务器四种不同的传值类型,个人更推荐传入Json,具体查看:https://blog.csdn.net/qq_22267353/article/details/82216535,下面是服务器端的方法,只要传入参数为JObject类型就可以
public string PostTest(JObject value) { var json = JsonConvert.SerializeObject(value); return json; }
附上Python调用.Net WebApi成功案例,verify 是因为Https的原因
#!/usr/bin/python #_*_coding:utf-8_*_ import requests,json url = 'https://localhost:44390/Api/Values/PostTest' #你的机器人webhook地址 program = { "msgtype": "markdown", "markdown": { "title":"测试", "text": "测试,随机多次@人员 " } } headers = {'Content-Type': 'application/json'} f = requests.post(url, data=json.dumps(program), headers=headers,verify=False) print(f)
常见报错点:
API服务打不开,404页面。
1.是否文件中有WebApiConfig.cs文件
2.Global.asax 方法 Application_Start 开头添加 GlobalConfiguration.Configure(WebApiConfig.Register);