2013-07-24 232 views
1

我想創建一個POST請求,我無法讓它工作。C#HttpClient POST請求

這是一個有3參數,可以accountidentifier /類型的請求的格式/ seriesid

http://someSite.com/api/User_Favorites.php?accountid=accountidentifier&type=type&seriesid=seriesid

,這是我的C#

using (var httpClient = new HttpClient()) 
     { 
      httpClient.BaseAddress = new Uri("http://somesite.com"); 
      var content = new FormUrlEncodedContent(new[] 
      { 
       new KeyValuePair<string, string>("accountidentifier", accountID), 
       new KeyValuePair<string, string>("type", "add"), 
       new KeyValuePair<string, string>("seriesid", seriesId), 

      }); 

      httpClient.PostAsync("/api/User_Favorites.php", content); 
} 

任何想法?

+0

你可以在帖子被調用時調試並查看httpClient的完整URI嗎? –

+1

你提到的參數是URI的一部分(查詢部分在'?'之後),但是你把它們作爲'content'發送。 – user1908061

+0

@ Cubicle.Jockey無法真正找到它。 – allocator

回答

-2

你也可以試試WebClient。它試圖準確地模擬瀏覽器會做什麼:

  var uri = new Uri("http://whatever/"); 
      WebClient client = new WebClient(); 
      var collection = new Dictionary<string, string>(); 
      collection.Add("accountID", accountID); 
      collection.Add("someKey", "someValue"); 
      var s = client.UploadValuesAsync(uri, collection); 

Where UploadValuesAsync POSTs您的收藏。

+0

HttpClient基本上是WebClient的新增強版本,爲增加對REST API的調用需求而開發。 – user1908061

+0

@ user1908061你應該嘗試幫助更多,火焰更少。 – allocator

+0

@allocator我不會燃燒。在這裏我剛剛提到新的HttpClient類是爲像你這樣的情況設計的。在你的問題中,你調用一個API時有問​​題,但是你不會告訴我們哪一個。你不知道如何正確地自己調用它。那麼我們應該如何幫助?我指出了你的問題中唯一可見的錯誤。 – user1908061