Zdravím, nemá někdo funkční příklad volání ARES pomocí SOAP (GET a
POST není problém) – zkusil jsem SoapClient i nusoap a narážím –
namespace mi to neustále cpe do hlavičky místo do tagu Ares_dotazy a s tím
zjevně v ARESu nepočítají (když ho manuálně přesunu, vše projde
…)
Raději bych použil SOAP než Get …
Díky
JN
korektní dotaz:
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.1">
<env:Body>
<ns1:Ares_dotazy **xmlns:ns1="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.1"** dotaz_datum_cas="2010-10-15T05:43:51" dotaz_pocet="1" dotaz_typ="Standard" vystup_format="XML" validation_XSLT="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.0/ares_request.xsl" user_mail="jannemec@centrum.cz" answerNamespaceRequired="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer/v_1.0.1" Id="Ares_dotaz">
<ns1:Dotaz>
<ns1:Pomocne_ID>1</ns1:Pomocne_ID>
<ns1:Typ_vyhledani>FREE</ns1:Typ_vyhledani>
<ns1:Klicove_polozky>
<ns1:ICO>27074358</ns1:ICO>
</ns1:Klicove_polozky>
<ns1:Max_pocet>10</ns1:Max_pocet>
</ns1:Dotaz>
</ns1:Ares_dotazy>
</env:Body>
</env:Envelope>
kód vygenerovaný standardně z PHO soapclient:
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.1">
<env:Body>
<ns1:Ares_dotazy dotaz_datum_cas="2010-10-15T05:43:51" dotaz_pocet="1" dotaz_typ="Standard" vystup_format="XML" validation_XSLT="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.0/ares_request.xsl" user_mail="jannemec@centrum.cz" answerNamespaceRequired="http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer/v_1.0.1" Id="Ares_dotaz">
<ns1:Dotaz>
<ns1:Pomocne_ID>1</ns1:Pomocne_ID>
<ns1:Typ_vyhledani>FREE</ns1:Typ_vyhledani>
<ns1:Klicove_polozky>
<ns1:ICO>27074358</ns1:ICO>
</ns1:Klicove_polozky>
<ns1:Max_pocet>10</ns1:Max_pocet>
</ns1:Dotaz>
</ns1:Ares_dotazy>
</env:Body>
</env:Envelope>
kód skriptu:
$soapClient = new SoapClient(self::getLocation(0), array(
'trace' => 1
, 'proxy_host' => "127.0.0.1"
, 'encoding' => "utf-8"
, 'proxy_port' => 8888
, 'soap_version' => SOAP_1_2
, 'features' => SOAP_USE_XSI_ARRAY_TYPE
, 'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP
));
$tm = time() - 2 * 3600;
$params = array(
'Dotaz' => array(
'Pomocne_ID' => 1
, 'Typ_vyhledani' => 'FREE'
, 'Klicove_polozky' => array(
'ICO' => '27074358'
)
, 'Max_pocet' => 10
)
, 'dotaz_datum_cas' => date('Y-m-d', $tm) . 'T' . date('H:i:s', $tm)
, 'dotaz_pocet' => 1
, 'dotaz_typ' => 'Standard'
, 'vystup_format' => 'XML'
, 'validation_XSLT' => 'http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_request/v_1.0.0/ares_request.xsl'
, 'user_mail' => self::getMail()
, 'answerNamespaceRequired' => 'http://wwwinfo.mfcr.cz/ares/xml_doc/schemas/ares/ares_answer/v_1.0.1'
, 'Id' => 'Ares_dotaz'
);
$response = $soapClient->GetXmlFile($params);
web je spíše koníček i když jsem se tím i živil … a třeba zase budu :-)