У меня проблема с вызовом веб-службы с использованием PHP.
Поставщик услуги приводит пример использования его с параметрами:
<?xml version="1.0" encoding="UTF-8"?>
<Parameters>
<START_DATUM>2010-07-20</START_DATUM>
<ENDE_DATUM>2010-07-20</ENDE_DATUM>
<GRUPPE_ID>231</GRUPPE_ID>
</Parameters>
Это код, который я использую для выполнения вызова (который ничего не возвращает):
$client = new SoapClient($wsdl);
$params = "<Parameters><START_DATUM>2015-03-31</START_DATUM><ENDE_DATUM>2015-03-31</ENDE_DATUM><GRUPPE_ID>231</GRUPPE_ID></Parameters>"$result=$client->GetXMLResultOf("SIEMS_Planung", $params);
var_dump($result);
Проблема в формате параметров.
Вот XMLSchema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="Parameters">
<xs:complexType>
<xs:sequence>
<xs:element name="START_DATUM" type="xs:date"/>
<xs:element name="ENDE_DATUM" type="xs:date"/>
<xs:element name="GRUPPE_ID" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Как мне отформатировать параметры, чтобы это работало?
Я перепробовал много кода, который нашел в интернете, но ничего не получалось.
Заранее спасибо.
Изменить 1:
Метод GetXMLResultOf — это метод из веб-службы.
Подпись: GetXMLResultOf (Profil-Name, Parameter)
Ответ :
Я нашел проблему … < Параметры> не нужны в моей строке $ params.
Это странно, потому что ему нужен другой профиль.
Спасибо за ответ и время, которое вы потратили, чтобы ответить мне.
Я не вижу метод GetXMLResultOf для класса SoapClient:
http://php.net/manual/fr/class.soapclient.php
Но это пример классического вызова Soap:
try {
$client = new SoapClient($wsdl);
$params = array('START_DATUM' => '2015-03-31',
'ENDE_DATUM' => '2015-03-31',
'GRUPPE_ID' => '231');
$response = $client->__soapCall($method, array($params));
return $response->return;
}
catch (SoapFault $e) {
error_log($e->detail);
}
Других решений пока нет …