WebClient.UploadValues到API。如何在API中获取发布的值?

时间:2014-01-30 13:12:23

标签: c# web-services api

美好的一天,

我正在使用WebClient将数据发送到API,如另一篇文章中所示:

using (var client = new WebClient())
{
      var values = new NameValueCollection();
      values["thing1"] = "hello";
      values["thing2"] = "world";

      client.Headers.Add("Username", Store.Objects.Application.Username());
      client.Headers.Add("PassToken", Store.Objects.Application.User()["PassToken"].ToString());

      var response = client.UploadValues(Store.Objects.Application.API_URL() + "/Company/Add", values);

      var responseString = Encoding.Default.GetString(response);
}

我的问题是我无法获取API中发布的值:

[HttpPost]
public Store.Objects.Security.Account Add(NameValueCollection values)
{
}

如何访问发送的值?

谢谢。

1 个答案:

答案 0 :(得分:0)

我知道映射键/值类型集合(如Dictionary<TKey, TValue>)会出现问题,因为它与RouteValueDictionary冲突 - 为了避免这种情况,通常最好将适当的参数放入方法签名中让MVC绑定器处理映射。在您的情况下,请尝试将方法签名更改为

[HttpPost]
public Store.Objects.Security.Account Add(string thing1, string thing2)
{
}