Я пытаюсь использовать API WCF впервые, используя PHP SoapClient, но до сих пор не блокировал.Использование PHP SoapClient для использования WCF API
Бегин, мне нужно, чтобы получить маркер из функции LOGIN
, и использовать этот маркер при вызове других функций. Вход детали:
- Имя пользователя: 'обычные'
- Passord: '' (пробел, а не NULL)
До сих пор я пытался несколько комбинаций, как правило, что-то вроде этого:
<?php
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
$params = array(
"soap_version" => SOAP_1_2,
"trace" => 1,
"exceptions" => 0,
);
$client = new SoapClient('http://bibjure.rwaao.no:8001/Jussystemer/BibjureService?singleWsdl', $params);
$retval = $client->Login('regular','');
if (is_soap_fault($retval)) {
trigger_error("SOAP Fault: (faultcode: {$retval->faultcode}, faultstring: {$retval->faultstring})", E_USER_ERROR);
}
var_dump($retval);
что приводит к следующей ошибке: PHP Fatal error: SOAP Fault: (faultcode: s:Sender, faultstring: The creator of this fault did not specify a Reason.) in /mnt/data/fredrik/wcf-test.php on line 17
Я не знаю, как решить эту ошибку. Я надеюсь, что кто-то может увидеть ошибку в моем коде.
Большое спасибо.
Такая же ошибка. Я предполагаю, что параметры в «SoapHeader» необходимо изменить. К сожалению, я понятия не имею, что. – frigg
@frigg Да, вам нужно изменить параметры в заголовке. Возьмите это как образец. $ auth = array ( 'UserName' => 'USERNAME', 'Пароль' => 'PASSWORD', 'SystemId' => array ('_' => 'DATA', 'Param' => 'PARAM'), ); $ header = new SoapHeader ('NAMESPACE', 'Auth', $ auth, false); $ client -> __ setSoapHeaders ($ header); –