我使用用 C# 编写的 Web 服务,在我的(客户端)端使用 PHP。
SOAP将预期参数之一__getTypes
返回为. 我试图以不同的方式发送参数,比如dateTime birthDate
$date = new DateTime("now");
$wsclient->SomeFunction(array($date->format("Y-m-d\TH:i:s"));
或者$date->format('c')
我什至把它写成一个字符串1932-11-12T00:00:00
等等。我没有得到肥皂异常,但函数返回接收到的birthDate
值是0001-01-01T00:00:00
.
我与 Web 服务的开发人员进行了一次会议,他向我展示了当他将System.DateTime
类型变量传递给函数时,它可以正常工作,但他是在 C# 本地而不是通过 Web 服务上做的,只是做
date = new DateTime(1999,9,9,0,0,0);
SomeFunction(date);
我想知道的是如何DateTime
从 PHP 传递 c# 类型。我想我用$date->format('c')
或 做对了$date->format("Y-m-d\TH:i:s")
。
我只是想确保这部分代码是正确的,如果是,请在其他地方搜索问题。
更新:我们得出的结论是:他们改变了自己的代码。数据类型保持不变(DateTime),我不知道他们在那里做了什么,但如果我得到任何信息,我会及时更新这篇文章。
几年后:他们只是不知道他们在做什么,我被一个问题困住了,这在我身边是不可能解决的。如果 WSDL 请求DateTime
并且您正确地发送了它(SOAP 不会抛出异常)并且它不能正常工作,那么您肯定应该在另一端寻找问题。