【问题标题】:PHP (SOAP-ERROR: Parsing WSDL)PHP(SOAP 错误:解析 WSDL)
【发布时间】:2016-09-11 15:21:21
【问题描述】:

我尝试发出 SOAP 请求:

$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);

但一个错误告诉我:

致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR: Parsing WSDL:无法从 'http://www.moviestarplanet.fr/WebService/ThirdParty/ThirdPartyService.asmx?wsdl' : 无法加载外部实体[...]

我在网上搜索了很长时间,但我没有找到任何解决方案......有人可以帮助我吗?谢谢!

【问题讨论】:

  • 你在 php.ini 中有allow_url_fopen=On 吗?那是我第一次想到的。也可以在这里查看:stackoverflow.com/questions/12875409/…
  • 感谢您的帮助。是的,我有allow_url_fopen=On,你的链接对我没有帮助......我很迷茫......

标签: php web-services soap wsdl


【解决方案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);
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-19
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    相关资源
    最近更新 更多