C# 将WCF服务连接到外部API

C# 将WCF服务连接到外部API,c#,wcf,api,wsdl,wadl,C#,Wcf,Api,Wsdl,Wadl,我需要通过API将WCF服务连接到外部WCF服务,该API以JSON格式返回数据 我一直在研究wsdl和wadl来实现这一点,但我不确定它们是否在外部服务上实现,或者如何访问它们 已在外部服务上启用了 从我到目前为止所看到的wsdl似乎已经过时,并且只与SOAP兼容,这听起来对吗?因此,如果这是正确的,我自然倾向于使用wadl 这些是我唯一的选择吗?如果是的话,有没有好的指南来指导如何实现这些 谢谢。这是基于我在工作中实现的精简版本,并修改(但未测试)以使用JSON(基于此处和web上的一些其他

我需要通过APIWCF服务连接到外部WCF服务,该API以JSON格式返回数据

我一直在研究wsdlwadl来实现这一点,但我不确定它们是否在外部服务上实现,或者如何访问它们

已在外部服务上启用了

从我到目前为止所看到的wsdl似乎已经过时,并且只与SOAP兼容,这听起来对吗?因此,如果这是正确的,我自然倾向于使用wadl

这些是我唯一的选择吗?如果是的话,有没有好的指南来指导如何实现这些


谢谢。

这是基于我在工作中实现的精简版本,并修改(但未测试)以使用JSON(基于此处和web上的一些其他答案):

有很多方法可以做到这一点,但是上面的代码演示了实现这一点是多么容易(或者至少应该如此)

注意,我对异步调用使用了
Result
属性;如果在标记为
async
的方法中进行此调用,还可以执行以下操作:

HttpResponseMessage response = await client.GetAsync("http://somedomain.com/serviceAddress");

string responseContent = await response.Content.ReadAsStringAsync();

HttpClient
位于
System.Net.Http
命名空间中。

WSDL没有过时,但是是的,它是用于SOAP的。如果您正在接收JSON,您很可能正在使用REST服务。@Tim Hi Tim,是的,这是一个REST服务。哦,好的,我刚才假设了,正如许多传统Microsoft文档中提到的那样。您可以使用类似于
HttpClient
的东西从您的服务连接到外部REST服务。在谷歌上搜索一下为REST服务编写.NET客户端之类的东西,应该会有很多例子。没有涉及WSDL或代理:)我有一个WCF服务正在工作,它连接到第三方RESTful服务(但它返回XML,而不是JSON),该服务使用
HttpClient
发送请求并使用响应-它只需要几行代码。非常简单。@Tim真棒,谢谢你,这比我想象的要容易得多。如果你发布答案,我会将其标记为正确答案。好吧,太棒了,我有一些非常类似的东西,虽然我无法让它工作。我试过你的版本,也有同样的问题。您使用了什么使用指令,因为我有以下错误HttpClient不包含“GetAsync”+“GetStringAsync”+“DefaultRequestHeaders”的定义?@Corey-您使用的是什么版本的.NET?它看起来像是
System.Net.Http
是4.5;您可能需要使用
System.Net.WebClient
System.Net.WebRequest
。否则,请确保将对
System.Net.Http
的引用添加到项目中,并将using指令
using System.Net.Http到您的代码。我正在使用.net Framework 4.5。是的,我已经在中添加了这些引用,但仍然有相同的错误。是的,我尝试了,但没有成功,就像客户端变量不包含这些方法一样。好的,明白了。这是我创建的一个公共类之间的冲突。谢谢你的帮助。
HttpResponseMessage response = await client.GetAsync("http://somedomain.com/serviceAddress");

string responseContent = await response.Content.ReadAsStringAsync();