2012-09-24 36 views
3

这里是我的代码未捕获的SOAPFault例外:[HTTP]未找到

$client = new SOAPClient ('http://torcache.net/torcache.wsdl'); 
    var_dump($client->cacheTorrent()); 

我得到这个的$client

object(SoapClient)#1 (2) { ["_soap_version"]=> int(1) ["sdl"]=> resource(1) of type (Unknown) } 

var_dump后,当我试图找到的var_dump(但是我得到这个消息$客户端 - > cacheTorrent()); 未捕获的SoapFault异常:[HTTP]未找到

但这对我来说没有意义,因为我下载了wdsl文件,并且它明白表示操作cacheTorrent存在!

这里

<?xml version='1.0' encoding='UTF-8' ?> 
<definitions name='Cache' 
    targetNamespace='urn:Torcache' 
    xmlns:tns='urn:Torcache' 
    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 name='cacheTorrentRequest'> 
    <part name='torrent' type='xsd:string'/> 
</message> 

<message name='cacheTorrentResponse'> 
    <part name='Result' type='xsd:string'/> 
</message> 

<portType name='CachePortType'> 
    <operation name='cacheTorrent'> 
    <input message='tns:cacheTorrentRequest'/> 
    <output message='tns:cacheTorrentResponse'/> 
    </operation> 
</portType> 

<binding name='CacheBinding' type='tns:CachePortType'> 
    <soap:binding style='rpc' 
    transport='http://schemas.xmlsoap.org/soap/http'/> 

    <operation name='cacheTorrent'> 
    <soap:operation soapAction='urn:xmethods-delayed-quotes#cacheTorrent'/> 
    <input> 
     <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' 
     encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> 
    </input> 
    <output> 
     <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' 
     encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> 
    </output> 
    </operation> 
</binding> 

<service name='CacheService'> 
    <port name='CachePort' binding='CacheBinding'> 
    <soap:address location='http://torcache.net/api/soap/'/> 
    </port> 
</service> 
</definitions> 

为什么我收到此错误的任何想法?

回答

0

没有什么不对您的客户端代码....我运行

$client = new SOAPClient ('http://torcache.net/torcache.wsdl'); 
var_dump($client->__getFunctions()); 

你会得到

array 
    0 => string 'string cacheTorrent(string $torrent)' (length=36) 

显然cacheTorrent期待它必须是一个有效的洪流的URL。 。确保在soap服务器上生成错误,同时尝试验证或访问该URL

+0

你好巴巴感谢您的帮助,但是我仍然得到这个错误,即使我使用有效的网址操作 –

+0

我的错误是这个致命错误:Uncaught SoapFault异常:[HTTP]找不到/ home/public_html/manualtorcache.php:8堆栈跟踪:#0 [内部函数]:SoapClient - > __ doRequest('<?xml version =“...','http:// torcache ...','urn:xmethods- (...),1,0)#1 /home/public_html//manualtorcache.php(8):SoapClient - > __ call('cacheTorrent',Array)#2 /home/public_html/manualtorcache.php(8): SoapClient-> cacheTorrent('ZDg6YW5ub3VuY2U ...')#3 {main}抛出 –

+0

我遇到了与SOAP类似的问题。有没有解决这个问题? –

1

确保soap:address指向正确的exis服务

+2

这更适合作为评论。 – Werner