duanbai1974 2013-01-07 08:44
浏览 70

致命错误:未捕获的SoapFault异常:[HTTP]错误获取http标头

I'm trying to output "Hello World" using XML but I'm getting the following exception in my php page:

Fatal error: Uncaught SoapFault exception: [HTTP] Error Fetching http headers in C:\wamp\www\Web_Service\SampleXML\index.php:4 Stack trace:
#0 [internal function]: SoapClient->_doRequest('<?xml version="...', 'http://localhos...', 'urn:localhost-s...', 1, 0)
#1 [internal function]: SoapClient->
_call('getHelloWorld', Array)
#2 C:\wamp\www\Web_Service\SampleXML\index.php(4): SoapClient->getHelloWorld()
#3 {main} thrown in C:\wamp\www\Web_Service\SampleXML\index.php on line 4

index.php

<?php
    $client = new SoapClient('service.wsdl');
    $response = $client->getHelloWorld(); 
    echo $response;
?>

service.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>

soap-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();

?>

Did I miss something in the code?

  • 写回答

4条回答 默认 最新

  • douchang6770 2013-05-07 13:59
    关注

    try to set this line,

    ini_set("default_socket_timeout", 200);
    

    or put this in php.ini

     default_socket_timeout = 200
    
    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向