通过HTTPClient将postdata发送到RESTful API

时间:2014-07-30 20:38:01

标签: c# asp.net-web-api

这看起来非常基础,它应该比我们已经做的简单得多,但我试图将一些内容发布到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)

我错过了什么?

编辑:更改路由粘贴代码。

0 个答案:

没有答案