从PHP调用经典ASP Web服务
问题描述:
我想从PHP调用经典ASP Web服务。从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
%>
我想打电话从PHP以非WSDL模式这项服务。我怎样才能做到这一点?如何在服务中调用特定的功能?
这里是我想从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();
?>
谢谢...
答
尝试使用$client->__soapCall()
:http://us3.php.net/manual/en/soapclient.soapcall.php。
我不相信你可以在非WSDL模式下使用直接方法调用。
编辑:
此外,在.asp的Web服务并不返回任何内容。 webservice实际上并不在服务器上调用像Test()这样的方法。 SOAP仅仅是用于调用和参数的与语言无关的通信的协议。服务器需要实际接听电话并将其应用于正确的预期方法。
+0
谢谢......我试过这个,但我仍然没有成功。 – Eric 2011-02-17 19:33:33
如果您可以控制服务器和客户端,并且它们是ASP和PHP,那么为什么不使用自己的通信API而不是SOAP呢?另外,我相信在那里有传统的ASP SOAP Web服务的库。 – mellamokb 2011-02-17 22:29:03