Мне нужно подключиться к SOAP-серверу с php, я прочитал много документации, примеров и руководств, но я до сих пор не могу выполнить аутентификацию на своем сервере. Я сделал работу ниже:Соединение SoapClient с SoapServer
$agencyNumber = 7818619810;
$fullTransmission = false;
//$context = array('header' => 'Content-type: application/soap+xml; charset=utf-8');
$params = array('agencyNumber' => 7818619810, 'fullTransmission' => 0/*,$context*/);
$client = new SoapClient("http://link/to/server?wsdl");
$test = $client->__getFunctions();
var_dump($test);// returns the functions my supplier provides, as well __getTypes() gives a bunch of variable arrays ect..
$response = $client->__soapCall('GetTransmissionTicket',array($params));//line 16 which is mentioned on error print
var_dump($response);
Даже если я поставил $context
, когда я пытаюсь запустить, я получаю ошибку ниже:
Fatal error: Uncaught SoapFault exception: [HTTP] Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'. in C:\xampp\htdocs\xml\inc\connection_test.php:16 Stack trace: #0 [internal function]: SoapClient->__doRequest('http://interfac...', '..//my-provider...', 1, 0) #1 C:..path..test.php(16): SoapClient->__soapCall('GetTransmission...', Array) #2 {main} thrown in C:..path..test.php on line 16
Удаленный метод, который я пытаюсь позвонить называется GetTransmissionTicket
, которая принимает два параметра, (int)agencyNumber
и fullTransmission
(BOOL) ..
Я хочу подчеркнуть, что есть много потоков на эту тему, некоторые из которых очень близко к моему вопросу (1, 2, 3 и т. Д.), Но я действительно не мог решить проблему. Пожалуйста, дайте руку. С уважением ..
спасибо за ваше внимание, но неопределенная функция errorReport. также я не мог понять, что вы пытались сделать. Является ли это функцией или, что вы «возвращаете»? – ilhnctn
Actuly Это была функция, созданная в моем коде, я выбрал только важную часть. Здесь errorReport - метод SoapFault, который даст вам ошибку, если она возникла при вызове wsdl . Я возвращаю сообщение с мыльным конвертом iff $ error == 0, что означает, что я получил метод возвращаемых значений в $ xml; Пройдите код снова по линии, вы узнаете ... Если у вас все еще есть вопрос .PLease не стесняйтесь спрашивать. –