我尝试使用PHP的肥皂客户端连接到Web服务,我可以使用Visual Studio成功完成,按F5并在本地运行该页面,这是一种享受。
只要我将完全相同的文件上传到我的apache web主机,我就会收到错误:"无法加载外部实体"。
这是我的代码,凭据和网址已被删除......
有什么想法吗?
<?php
header("Access-Control-Allow-Origin: http://example.com");
header("Access-Control-Request-Method: GET,POST");
ini_set('display_errors', true);
ini_set("soap.wsdl_cache_enabled", "0");
error_reporting(E_ALL);
try
{
$soapclient = new SoapClient('http://example.com');
$params = array ('SystemID' => 'testID','Username' => 'test', 'Password' => 'test');
$response = $soapclient->GetEngineerList($params);
print_r($response);
}
catch(SoapFault $e)
{
print_r($e);
}
答案 0 :(得分:2)
字符串不会被读取两次并在单引号中解析
$soapclient = new SoapClient('$url');
试
$soapclient = new SoapClient($url);
也......你有 $ url =''; 吗?
更新1
请尝试使用基本身份验证来访问您的wsdl:
$login = 'bert';
$password = 'berts password';
$client = new SoapClient(
'http://' . urlencode($login) . ':' . urlencode($password) . '@www.server.com/path/to/wsdl',
array(
'login' => $login,
'password' => $password
)
);