2014-07-02 107 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

相关问题