【问题标题】:Unable to consume Web Api Service from .NET 3.5 application无法从 .NET 3.5 应用程序使用 Web Api 服务
【发布时间】:2014-08-23 20:45:11
【问题描述】:

我有一个作为单独项目的一部分创建的 Web api 服务,通过在 .NET 4 和 4.5 中使用 HttpClient,我可以毫无问题地连接和使用该服务。但是,.NET 3.5 不支持 HttpClient,我需要能够从现有的 .NET 3.5 应用程序中使用此服务。我试过使用 WebClient,但它不起作用。这是我的代码:

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 的解决方案: Call web APIs in C# using .NET framework 3.5 在这里: 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 时我做错了什么?

【问题讨论】:

  • 如果您告诉我们您遇到了什么异常,我们会告诉您您做错了什么。 :)
  • 无异常,响应对象返回为空。
  • 发现问题:有一个针对导致问题的 Web api 服务的操作过滤器设置。

标签: c# asp.net-web-api .net-3.5 webclient asp.net-3.5


【解决方案1】:

正如我在 cmets 中指出的那样,问题在于 Web api 服务的操作过滤器设置导致了问题。

【讨论】:

  • 为什么动作过滤器会导致这个问题——它是编码错误/错误还是它的存在导致您的客户端崩溃?如果是前者,那你很好。如果是后者,那么您可能仍然需要一个更好的解决方案来访问您的 Web api,因为如果您绝对必须有一个动作过滤器会发生什么?无论如何,只想提一下RestSharp 客户端。它在ReadMe 中特别声明它支持.NET 3.5 及更高版本。
猜你喜欢
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 2010-12-06
  • 2012-05-29
  • 1970-01-01
相关资源
最近更新 更多