2016-09-11 12 views
1

私はSOAPリクエストを作ってみる:PHP(SOAP-ERROR:WSDLの解析)

$soapclient = new SoapClient('http://www.moviestarplanet.fr/WebService/ThirdParty/ThirdPartyService.asmx?wsdl'); 
$params = array('username' => 'string', 'password' => 'string'); 
$response = $soapclient->Login($params); 
var_dump($response); 

が、私に言って、エラーを:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from ' http://www.moviestarplanet.fr/WebService/ThirdParty/ThirdPartyService.asmx?wsdl ' : failed to load external entity[...]

私はネット上で長い時間を探し、しかし、私は解決策を見つけていない...誰でも私を助けることができますか?ありがとう!

+0

php.iniに 'allow_url_fopen = On'がありますか?それはちょうど私の心の中に入ってきました。またここにチェックしてください:http://stackoverflow.com/questions/12875409/soap-php-fault-parsing-wsdl-failed-to-load-external-entity –

+0

あなたの助けをありがとう。はい、私は 'allow_url_fopen = On'を持っていて、あなたのリンクは私を助けませんでした...私は非常に失われています... –

答えて

-1

私は解決策を見つけました!

<?php 
$xml_data = ' 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Header> 
    <ThirdPartyTokenHeader xmlns="http://moviestarplanet.com/"> 
     <ThirdPartyToken>8346D304-F85E-4dc1-98EB-033CBEE0217F</ThirdPartyToken> 
    </ThirdPartyTokenHeader> 
    </soap:Header> 
    <soap:Body> 
    <Login xmlns="http://moviestarplanet.com/"> 
     <username>USER</username> 
     <password>PASS</password> 
    </Login> 
    </soap:Body> 
</soap:Envelope> 
'; 

$headers = array(
"POST /WebService/ThirdParty/ThirdPartyService.asmx HTTP/1.1", 
"Referer: www.moviestarplanet.fr", 
"User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.4.2; GT-I9505 Build/KOT49H)", 
"Content-Type: text/xml; charset=utf-8", 
"Host: www.moviestarplanet.fr", 
"Content-length: ".strlen($xml_data), 
"Expect: 100-continue" 
); 

$url = 'http://www.moviestarplanet.fr/WebService/ThirdParty/ThirdPartyService.asmx?WSDL'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data); 

$reply = curl_exec($ch); 

echo($reply); 
?>