从Python连接到WCF net.tcp协议

时间:2014-04-16 10:50:09

标签: python wcf

我正在使用库 suds 的SOAP API,但不确定我是否可以使用Python库来解决这个问题。

首先,我连接到API。

client.Client("http://localhost:8003/mex")

连接后,可以看到API中的每个方法,但问题是当我尝试调用它时:

client.service.MethodX()
urllib2.URLError: <urlopen error unknown url type: net.tcp>

我已与提供商交谈过,在运行时,API在net.tcp:// localhost:8002 / PublicAPI中公开。我没有设法找到有关此问题的解决方案,而没有创建在C#中开发的桥接器来将数据发送到我的Python脚本。

1 个答案:

答案 0 :(得分:2)

首先,如果使用NetTcpBinding公开服务,则无法使用基于SOAP的库来使用它,因为net.tcp使用二进制消息编码(消息不以SOAP格式传输) 。此外,(AFAIK)WCF的net.tcp不符合任何行业标准,专为.NET应用程序之间的高性能通信而设计,而非互操作性。鉴于此,我怀疑你能否以任何方式直接从Python使用服务。在这种情况下可能的选项是:

  1. 创建一个.NET桥并使用Python(正如您所提到的)
  2. 要求服务提供商使用ie公开其他端点。 basicHttpBinding