Nusoap'ta ve genel olarak web hizmetlerinde yeniyim.NuSoap - nusoap_client PHP'de yerel, varolan WSDL dosyası nasıl kullanılır?
wsdl dosyası istemciden gelir. Ben bir web adresi ile wsdl besleyen varsayılan URL ile çalışan temel bir web hizmeti. Kullanacak şekilde kod yerel WSDL ve XML şema dosyaları indirmek Lütfen" Yapma: http://hiddenurl.com/ws/schema/Terminal.wsdl
Ama müşterinin belgelerine diyor Bu dosyaları sunucudan her seferinde al. "
Bu nedenle, wsdl dosyasını yerel olarak veya kendi web sunucum üzerinden barındırmaya çalışıyorum, ancak ikisi de işe yaramadı.
denedim:
$wsdlUrl = 'http://supplied-url.com/schema/Terminal.wsdl' // working but discouraged
$wsdlUrl = 'http://my-own-IIS-based-url/schema/Terminal.wsdl' // url loads and I can
// view wsdl file, but when I load run webservice is returns blank/nothing
$wsdlUrl = 'path/to/local/Terminal.wsdl' // returns blank or 'boolean'false'
$tempUrl = realpath('path/to/local/Terminal.wsdl') // get absolute url
wsdlUrl = tempUrl; // returns blank screen or 'boolean'false'
Ben web hizmeti var herhangi bir yolu başlangıçta istemci tarafından verilenden başka bir yerden wsdl dosyasını kullanmak var mı? Ben wsdl bir tür http://getfile.php?file.wsdl döndüren web sunucuları için bazı referanslar gördüm ama ben wsdl sorgu dizesi üzerinden teslim etmek için 'getfile.php' içinde ne olacağını anlamıyorum.
Web servisimi aramak için benim PHP kodum. Yine, wsdl dosyası için istemci tarafından verilen URL ile çalışır, ancak herhangi bir şekilde wsdl dosyasına erişmeye çalıştığımda değil.
<?php
require_once('nusoap.php');
$URI = 'http://api.hiddenurl.com/ws/schema';
$env = 'api';
$wsdlUrl = 'http://'.$env.'.hiddenurl.com/schema/Terminal.wsdl';
$licenseKey = 'xxxx-xxxx-xxxx-xxxx-xxxx';
$userName = 'user';
$password = 'password';
$service = new nusoap_client($wsdlUrl, true);
// login credentials
$service->setHeaders(
'<wsse:Security xmlns:wsse="http://hiddenurl.xsd">'.
'<wsse:UsernameToken>'.
'<wsse:Username>'.$userName.'</wsse:Username>'.
'<wsse:Password Type="http://hiddenurl#PasswordText">'.$password.'</wsse:Password>'.
'</wsse:UsernameToken>'.
'</wsse:Security>'
);
$msg =
'<GetDetailsRequest xmlns="'.$URI .'">'.
'<messageId></messageId>'.
'<version></version>'.
'<licenseKey>'.$licenseKey.'</licenseKey>'.
'<iccids>'.
'<iccid>'.'xxxxxxxxxxxxxxx'.'</iccid>'.
'</iccids>'.
'</GetDetailsRequest>';
$result = $service->call('GetlDetails', $msg);
if ($service->fault) {
echo 'faultcode: ' . $service->faultcode . "\n";
echo 'faultstring: ' . $service->faultstring . "\n";
echo 'faultDetail: ' . $service->faultdetail . "\n";
echo 'response: ' . $service->response;
exit(0);
}
echo "<pre>";
var_dump($result);
echo "</pre>";
?>
Çok teşekkürler.
'yolunu deneyin - Doğru yolda geçirerek emin misin? File_exists ('path/to/local/Terminal.wsdl') 'dönüş değeri nedir? – FuzzyTree
Yorumunuz için teşekkürler. 'file_exists ('path/to/local/Terminal.wsdl')' 1 değerini döndürdüğüm 1 değerini döndürür. – 100pic
php'nin son sürümleri yerel bir sabo istemcisi ile birlikte gelir (https://secure.php.net/manual/en/class.soapclient.php), istemcileri değiştirmek istemiyorum, yerel istemciyi denemeyi öneririm – FuzzyTree