如何使用C#客户端调用Django/Python Web服务(所有方法都返回null)?

4

我有一个C#命令行客户端,正在测试通过Django/Python/soaplib创建的WSDL消费SOAP/WSDL。我成功地添加了服务引用连接到网络服务。然后我调用其中一个服务方法,服务处理我发送的数据,但返回null而不是我期望的整数。有没有办法得到除空响应以外的其他东西?感谢您的任何帮助或建议!


它返回 null 的最常见原因是返回的数据类型与 c# 代理期望的类型不匹配,例如,如果返回消息是任何类型的自定义对象数组,则 soap 规范必须完全匹配,否则它将被渲染为 null。您能否在代理和服务之间加入 Fiddler 来监视流量以查看接收到的内容? - GrayWizardx
2个回答

0

你可以尝试使用WebClient或WebRequest/WebResponse构建手动代理,将所需数据发送到WS以进行测试。

有几件事情需要检查WSDL实现:

  • 必须完全匹配WSDL定义(包括大小写),才能使C#代理识别值
  • 命名空间定义必须完全匹配,包括尾部斜杠
  • 检查生成的代理文件配置文件是否符合所需配置文件(例如:如果需要基本配置文件或无配置文件)

如果您发布您的生成的代理文件,我们可以查看并确定是否有任何不寻常之处。


谢谢,我已经查看了所有内容,但实在搞不清为什么它会继续返回 null。不幸的是,我无法发布代码,因为它属于公司财产,但感谢您提供的所有帮助。 - mkelley33

0
我们在调用一个Web服务时遇到了类似的问题,那就是返回数据的类型是UTF-16格式。
请检查您所使用的数据类型是否正确。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接