我想从PHP调用经典ASP Web服务。
这是服务:
<%
Response.Buffer = True
Response.ContentType = "text/xml"
Set xmldom = Server.CreateObject("Microsoft.XMLDOM")
Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
Sub Test()
returnXML = ""
returnXML = returnXML & "<SOAP:Envelope xmlns:SOAP=""urn:schemas-xmlsoap-org:soap.v1"">"
returnXML = returnXML & "<SOAP:Body>"
returnXML = returnXML & "<message>"
returnXML = returnXML & "<theword>Hello</theword>"
returnXML = returnXML & "</message>"
returnXML = returnXML & "</SOAP:Body>"
returnXML = returnXML & "</SOAP:Envelope>"
Response.Write(returnXML)
End Sub
Set xmldom = Nothing
Set xmlhttp = Nothing
%>
我想在非WSDL模式下从PHP调用此服务。我怎样才能做到这一点?如何在服务中调用特定功能?
以下是我尝试从PHP调用服务的方法:
<?php
$client = new SoapClient(
null, array(
'location' => "http://server/folder/server.asp",
'uri' => "http://test-uri/",
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL,
'trace'=>1
)
);
$result = $client->Test();
$client->__getLastResponse();
?>
...谢谢
答案 0 :(得分:0)
尝试使用$client->__soapCall()
:http://us3.php.net/manual/en/soapclient.soapcall.php。
我不相信你可以在非WSDL模式下使用直接方法调用。
修改强>
此外,.asp中的Web服务未返回任何内容。 Web服务实际上并没有在服务器上调用类似Test()的方法。 SOAP仅仅是用于与调用和参数进行语言无关的通信的协议。服务器需要实际接听电话并将其应用于正确的预期方法。