Merhabalar, SOAPUI ile bağlantı sorunsuz sağlıyorum.
Ancak PHP ile bağlantı sağlayamıyorum, soap hata dönüşü:
Could not connect to host
Nerede hata yapıyorum, çözemedim
try {
$opts = array(
'http' => array(
'user_agent' => 'PHPSoapClient'
)
);
$context = stream_context_create($opts);
$wsdlUrl = 'https://www.n11faturam.com/integrationservicewithoutmtom/IntegrationService.asmx?WSDL';
$client = new SoapClient($wsdlUrl, array(
'trace' => 1,
'cache_wsdl' => WSDL_CACHE_NONE,
'stream_context' => stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
))
));
$CorporateCode = 'xxx';
$LoginName = 'xxx';
$Password = 'xxx';
$result = $client->GetFormsAuthenticationTicket($CorporateCode,$LoginName,$Password);
print_r($result);
}
catch(Exception $e) {
echo $e->getMessage();
}
Bu kod parçacığında, PHP dilinde bir SOAP (Simple Object Access Protocol) istemcisi kullanılarak bir web servisi ile iletişim kurmaya çalışılmaktadır. Ancak, bu kod parçacığında bazı hatalar bulunmaktadır ve bu nedenle kod çalışmayabilir.
Örneğin, 'user_agent' => 'PHPSoapClient' satırında, 'user_agent' anahtarı ile bir kullanıcı aracısı tanımlanmaktadır. Ancak, bu satırda 'user_agent' anahtarı yerine 'User-Agent' anahtarını kullanmanız gerekir. Ayrıca, $context değişkeni tanımlanırken $opts değişkeni kullanılmıştır ancak $opts değişkeni hiçbir yerde tanımlanmamıştır ve bu nedenle bir hata mesajı alabilirsiniz.
Ayrıca, $client = new SoapClient satırında bir SoapClient nesnesi oluşturulurken bir hata mesajı alabilirsiniz. Bu hata, SoapClient sınıfının PHP dilinde tanımlanmamış olduğu anlamına gelir ve bu nedenle bu sınıfı kullanırken bir hata mesajı alabilirsiniz.
Bu hataları düzeltmek için aşağıdaki gibi bir kod yazabilirsiniz:
try {
// Kullanıcı aracısı tanımlama
$opts = array(
'http' => array(
'User-Agent' => 'PHPSoapClient'
)
);
// Akış bağlamı oluşturma
$context = stream_context_create($opts);
// WSDL URL'sini belirtme
$wsdlUrl = 'https://www.n11faturam.com/integrationservicewithoutmtom/IntegrationService.asmx?WSDL';
// SOAP istemcisi oluşturma
$client = new SoapClient($wsdlUrl, array(
'trace' => 1,
'cache_wsdl' => WSDL_CACHE_NONE,
'stream_context' => stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
))
));
// Örnek değişkenleri tanımlama
$CorporateCode = 'xxx';
$LoginName = 'xxx';
$Password = 'xxx';
// Web servisi çağrısı yapma
$result = $client->GetFormsAuthenticationTicket($CorporateCode,$LoginName,$Password);
print_r($result);
}
// Hata durumlarını yakalama
catch(Exception $e) {
echo $e->getMessage();
}Bu kod parçacığında, try blok içerisinde bir SoapClient nesnesi oluşturulur ve GetFormsAuthenticationTicket metodu çağrılarak web servisi ile iletişim kurulmaya çalışılır. Eğer bu işlem başarılı bir şekilde gerçekleştirilebilirse, dönen sonuçlar print_r fonksiyonu ile ekrana yazdırılır. Ancak, bir hata durumu oluşursa catch blok içerisinde bu hatanın mesajı ekrana yazdırılır.
Bu kod parçacığında, PHP dilinde bir SOAP istemcisi kullanılarak bir web servisi ile iletişim kurmaya çalışılmıştır. PHP dilinde, SoapClient sınıfı ile bir SOAP istemcisi oluşturabilir ve bu istemci ile bir web servisi çağrısı yaparak veri alabilirsiniz. Ayrıca, try ve catch ifadeleri kullanarak hata durumlarını yakalayabilir ve bu hataların mesajlarını ekrana yazdırarak hata ayıklama işlemleri gerçekleştirebilirsiniz.
Daha fazla bilgi için, PHP dokümantasyonuna göz atabilirsiniz:
https://www.php.net/manual/en/class.soapclient.php