在php中使用Windows服务(WCF)

时间:2013-11-05 16:16:23

标签: php wcf web-services soap wsdl

我的老板给了我一个.net服务链接,上面写着与WCF一起写的。 我认为服务用错误的方法编写,因为服务程序员说我们在asp.net中使用时没有这个服务的问题但是当我在PHP中尝试使用这个服务时我有问题。

我的代码是:

$url = "http://<service url>?wsdl";

$param = new stdClass();
$param->type = "user";

$soap = new SoapClient($url);
$result = $soap->getPerm($param);

当我运行程序时,我会收到此消息:

Fatal error: Uncaught SoapFault exception: [HTTP] Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'multipart/related; type="application/xop+xml"'. in /home/work/soap.php:10
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://<service url>....', 'http://tempuri....', 1, 0)
#1 /home/work/soap.php(10): SoapClient->__call('getPerm', Array)
#2 /home/work/soap.php(10): SoapClient->getPerm(Object(stdClass))
#3 {main}
  thrown in /home/work/soap.php on line 10

我使用谷歌来解决我的问题,所以我找到了这篇文章: http://www.binarytides.com/modify-soapclient-request-php/

当我将SoapClient扩展为SoapClientDebug并使用此功能时,我会收到以下消息:

[Client] looks like we got no XML document in /home/work/soap.php:10

我真的很困惑,我不知道如何在php中使用windows服务

1 个答案:

答案 0 :(得分:0)

实际上有点晚了,但也许这会以任何方式有用。 从你说的服务似乎工作正常。 试试这个: http://www.highonphp.com/fixing-soap-exception-no-xml

或者,如果您确实设法找到解决方案,我很好奇还有什么可以解决问题。