我嘗試使用SOAP庫從PHP創建一個新的對象與下面的代碼:上創建SOAP客戶端PHP的一個對象
<?php
try{
$wsdl="https://THE.IP.HERE:PORT/B1WS/WebReferences/LoginService.wsdl";
$client=new SoapClient($wsdl, array('location' => 'https://THE.IP.HERE:PORT/B1WS/Service.asmx', 'trace' => true));
var_dump($client);
echo "Types: -> ";
print_r($client->__getTypes());
echo "Functions: -> ";
var_dump($client->__getFunctions());
$res=$client->Login(array(
'DatabaseServer' => 'THE.IP.HERE',
'DatabaseName' => 'DATABASE_NAME',
'DatabaseType' => 'dst_MSSQL2012',
'DatabaseUsername' => 'USERNAME',
'DatabasePassword' => 'DATABASE',
'CompanyUsername' => 'USERNAME',
'CompanyPassword' => '****',
'Language' => 'ln_English',
'LicenseServer' => 'THE.IP.HERE:30000'));
print_r($res);
echo htmlentities($client->__getLastRequest());
}
catch(SoapFault $e)
{
echo htmlentities($client->__getLastRequest());
print_r($e);
}
?>
,我也得到了以下錯誤:
Fatal error: Call to a member function __getLastRequest() on a non-object in C:\wamp\www\mysite.local\teste.php on line 40
這是行echo htmlentities($ client - > __ getLastRequest());關於崇高的文本。
我有我的PHP上激活的肥皂擴展。即時通訊使用PHP 5.4.12
任何人都可以幫助這個嗎?
三江源
如果將這兩行放在try/catch塊外面,會發生什麼錯誤? '$ wsdl =「https://THE.IP.HERE:PORT/B1WS/WebReferences/LoginService.wsdl」; $ client = new SoapClient($ wsdl,array('location'=>'https://THE.IP.HERE:PORT/B1WS/Service.asmx','trace'=> true));' – infomaniac
Thanks Danny期待你的答覆。 ($客戶端) 再次,線print_r($客戶端 - > __ getTypes())上的同樣的錯誤;在這一行中,它給了我一個注意:未定義的變量:客戶端在...線上:var_dump 而另一個 - 致命錯誤:調用成員函數__getTypes()在與最後一個通知相同的行上的非對象(...)中。 – user3306164
我懷疑當你實例化SoapClient對象時某些東西正在破壞。嘗試設置你的錯誤級別儘可能高('error_reporting(E_ALL)'),看看是否有其他事情出現。 – infomaniac