这看起来非常基础,它应该比我们已经做的简单得多,但我试图将一些内容发布到webAPI控制器。我们使用第三方CRM工具,允许我们在某些操作完成后发送POST请求。所述CRM工具在POST主体中发送内容。
我不知道内容是什么,所以我只是捕获数据。
我的网络API控制器如下所示:
[HttpPost]
[ActionName("ActivateUserAccount")]
public HttpResponseMessage ActivateUserAccount([FromBody] string key)
{
return Request.CreateResponse(HttpStatusCode.OK,key);
}
要模拟来自POST的呼叫,我这样做:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(uri);
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("key", "value")
});
var result = client.PostAsync("", content).Result;
var resultContent = result.Content.ReadAsStringAsync().Result;
Console.WriteLine(resultContent);
}
我的路由是:
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{Action}/{id}"
,defaults: new { id = RouteParameter.Optional
}
);
当我运行测试方法时,它没有发送任何东西 - 或者至少控制器没有得到任何东西。
通过HTTPS访问Web API控制器,不确定它是否相关(没有404)
我错过了什么?
编辑:更改路由粘贴代码。