Задать вопрос
garinov
@garinov
Фрилансер

Как отправить soap запрос?

Надо сделать для этого сервиа www.webservicex.com/New/Home/ServiceDetail/64

На гет-запрос нормально возвращает ,например
www.webservicex.net/geoipservice.asmx/GetGeoIP?IPA...

А для SOAP не получается справиться с примерами - все время выдает ошибку

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'www.webservicex.net/GetGeoIP?' : failed to load external entity "www.webservicex.net/GetGeoIP?" in C:\OpenServer\domains\webservicex\new7.php:3 Stack trace: #0 C:\OpenServer\domains\webservicex\new7.php(3): SoapClient->SoapClient('http://www.webs...') #1 {main} thrown in C:\OpenServer\domains\webservicex\new7.php on line 3


Не пойму, как это прописать правильно.
  • Вопрос задан
  • 553 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
garinov
@garinov Автор вопроса
Фрилансер
Сам спросил - сам ответил

<?php

echo '<form action="new6.php" method="post">
  <input type="text" name="IPAddress" value=""><br><br>
  <input type="submit" value="Submit">
</form>';

try 
{
$soap_client = new SoapClient("http://www.webservicex.net/geoipservice.asmx?WSDL");
	$vec = array("IPAddress"=>$_POST[IPAddress]);
	//print_r($vec);
	echo '<br><br>';
	
	$quote = $soap_client->GetGeoIP($vec);
	//print_r($quote);
	echo '<br><br>';

	//print_r($quote->GetGeoIPResult->CountryName);
	
	$country = $quote->GetGeoIPResult->CountryName;
	echo "Ваш IP " . $quote->GetGeoIPResult->IP . " соответствует стране: " . $country;
	
}

catch (SoapFault $exception)
{
echo $exception->getMessage();
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы