2014-07-02 150 views
0

我有一個作爲單獨項目的一部分創建的web api服務,並且可以在.NET 4中使用HttpClient而無任何問題地連接和使用該服務和4.5。但是,.NET 3.5不支持HttpClient,我需要能夠從現有的.NET 3.5應用程序中使用此服務。我試過使用WebClient,但它不起作用。這裏是我的代碼: Call web APIs in C# using .NET framework 3.5這裏:無法使用.NET 3.5應用程序中的Web Api服務

WebClient client = new WebClient(); 
client.Headers.Add("content-type", "application/json"); 

string serialisedData = JsonConvert.SerializeObject(DATA); 

var response = client.UploadString(URI, serialisedData); 

var result = JsonConvert.DeserializeObject(response); 

我使用的WebClient這裏提供試圖解決方案 http://www.thepicketts.org/2012/11/how-to-access-webapi-from-a-net-3-5-client-in-c/

這個解決方案包括HttpClient的代碼,事件雖然它不支持連: http://forums.asp.net/t/1982540.aspx?Consume+Web+API+in+project

當我嘗試使用.NET 3.5連接到web api時,我做錯了什麼?

+0

如果你告訴我們你有什麼異常,我們會告訴你你做錯了什麼。 :) –

+0

沒有例外,響應對象回到空。 – freakinthesun

+0

發現問題:導致此問題的web api服務有一個操作篩選器設置。 – freakinthesun

回答

0

正如我在評論中指出的那樣,問題在於存在導致問題的web api服務的操作篩選器設置。

+0

爲什麼動作過濾器會導致這個問題 - 它是編碼錯誤還是它的存在導致您的客戶端崩潰?如果前者,那麼你很好。如果是後者,那麼你可能仍然需要一個更好的解決方案來訪問你的web api,因爲如果你絕對必須有一個動作過濾器會發生什麼?無論如何,只是想提到[RestSharp](http://restsharp.org/)客戶端。它在[ReadMe](https://github.com/restsharp/RestSharp)中特別聲明它支持.NET 3.5及更高版本。 – djikay

相關問題