Kadi
@Kadi
веб-разработчик

Как правильно составить wsdl запрос в php?

вот результат для var_dump($client->__getFunctions());
array(2) {
  [0]=>  string(53) "GetPinInfoResponse GetPinInfo(GetPinInfo $parameters)"
  [1]=>  string(71) "GetPinsInfoArrayResponse GetPinsInfoArray(GetPinsInfoArray $parameters)"
}

а вот для var_dump($client->__getTypes());
array(10) {
  [0]=>  string(59) "struct PinInfo {
	 string Code;
	 string Name;
	 string Pin;
	}"
		[1]=>	string(43) "struct ArrayOfPinInfo {
	 PinInfo PinInfo;
	}"
		[2]=>	string(40) "struct ArrayOfstring {
	 string string;
	}"
		[3]=>	string(34) "struct GetPinInfo {
	 string pin;
	}"
		[4]=>	string(56) "struct GetPinInfoResponse {
	 PinInfo GetPinInfoResult;
	}"
		[5]=>	string(48) "struct GetPinsInfoArray {
	 ArrayOfstring pins;
	}"
		[6]=>	string(75) "struct GetPinsInfoArrayResponse {
	 ArrayOfPinInfo GetPinsInfoArrayResult;
	}"
  [7]=> string(8) "int char"
  [8]=> string(17) "duration duration"
  [9]=> string(11) "string guid"
}


вот как я делаю запрос
ini_set('soap.wsdl_cache_enabled', '0'); 
ini_set('soap.wsdl_cache_ttl', '0');

try {
	$client = new SoapClient("http://10.10.10.142:8009/PinInfoService?wsdl", array('trace' => true));
//	var_dump($client->__getFunctions());
//	var_dump($client->__getTypes());
	
	$params = '****************';				
	$request = $client->GetPinInfo($params);
	$itog = $request->GetPinInfoResponse;
}
catch (SoapFault $exception) 
{
	echo $exception->getMessage();
}


а вот ошибка, что выходит

Серверу не удалось обработать запрос из-за внутренней ошибки. Для получения дополнительной информации об ошибке включите IncludeExceptionDetailInFaults (или с помощью атрибута ServiceBehaviorAttribute, или из конфигурации поведения ) на сервере с целью отправки информации об исключении клиенту, либо включите трассировку, согласно документации Microsoft .NET Framework 3.0 SDK, и изучите журналы трассировки сервера.
  • Вопрос задан
  • 2852 просмотра
Решения вопроса 1
@Arik
$params = '****************'; - у вас строка? Попробуйте как массив отдать
$params = array('pin' => '****************'); // или array('****************'); 
  $request = $client->GetPinInfo($params);
  $itog = $request->GetPinInfoResponse;


Нет никакой авторизации?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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