2014-01-30 23 views
0

好日子,WebClient.UploadValues到API。如何獲取API中的發佈值?

所看到在另一篇文章,我將數據發送到使用Web客戶端的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

你有什麼'價值'?僅供參考'HttpPost'只是'AcceptVerbs'的簡寫,你不需要兩者。 – James

+0

值爲空...編輯HttpPost部分謝謝。 –

回答

0

我已經知道映射鍵/值類型集合(如Dictionary<TKey, TValue>)的問題,因爲它與RouteValueDictionary發生衝突 - 爲避免這種情況,通常最好將適當的參數放入方法簽名中,並讓MVC綁定器處理映射。在你的情況下,嘗試改變你的方法簽名到

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