我正在尝试使用 XML 输出“Hello World”,但在我的 php 页面中出现以下异常:
致命错误:未捕获的 SoapFault 异常:[HTTP] Error Fetching http headers in C:\wamp\www\Web_Service\SampleXML\index.php:4 堆栈跟踪:
#0 [内部函数]:SoapClient->_ doRequest('<? xml version="...', 'http://localhos...', 'urn:localhost-s...', 1, 0)
#1 [内部函数]: SoapClient-> _call('getHelloWorld' , Array)
#2 C:\wamp\www\Web_Service\SampleXML\index.php(4): SoapClient->getHelloWorld()
#3 {main} 在 C:\wamp\www\Web_Service\SampleXML\index.php 中抛出在第 4 行
索引.php
<?php
$client = new SoapClient('service.wsdl');
$response = $client->getHelloWorld();
echo $response;
?>
服务.wsld
<?xml version = '1.0' encoding = 'UTF-8' ?>
<definitions name = "Web Service"
targetNamespace = 'http://example.org/service'
xmlns:tns = 'http://example.org/service'
xmlns:soap = 'http://schemas.xmlsoap.org/wsdl/soap/'
xmlns:xsd = 'http://www.w3.org/2001/XMLSchema'
xmlns:soapenc = 'http://schemas.xmlsoap.org/soap/encoding/'
xmlns:wsdl = 'http://schemas.xmlsoap.org/wsdl/'
xmlns = 'http://schemas.xmlsoap.org/wsdl/' >
<!-- Message -->
<message name='getHelloWorld'>
<part name='response' type='xsd:string' />
</message>
<!-- Operations offered -->
<portType name = 'PortType'>
<operation name = 'getHelloWorld'>
<!-- Target Name Space -->
<output message = 'tns:getHelloWorld' />
</operation>
</portType>
<!-- Binding Element -->
<binding name = 'Binding' type = 'tns:PortType'>
<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http' />
<operation name='getHelloWorld'>
<soap:operation soapAction = 'urn:localhost-service#getHelloWorld' />
<!-- Output -->
<output>
<soap:body use='encoded' namespace='urn:locahost-service' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' />
</output>
</operation>
</binding>
<!-- Define the service -->
<service name='Service'>
<port name='Port' binding='Binding' >
<!-- Location -->
<soap:address location='http://localhost/Web_Service/SampleXML/soap-server.php' />
</port>
</service>
</definitions>
肥皂-server.php
<?php
function getHelloWorld() {
return "Hello World";
}
ini_set("soap.wsdl_cache_enabled", "0");
$server = new SoapServer('service.wsdl');
$server->addFunction("getHelloWorld");
$server->handle();
?>
我错过了代码中的某些内容吗?