164 CreateMessage s přílohou

datoveschranky@cechis.cz 27.03.2018 17:40

Dobrý den,

dle specifikace dmFile je uvedeno, ze obsah souboru je v atribitu dmEncodedContent.

 

Z testů mi vychází, že base64encoded projde pouze text/plain .txt file.

Ostatní, co jsem zkoušel (application/pdf, image/jpg, image/png) prošly pouze v případě, že encodované nebyly a byly zaslané jako binary data

Naopak pokud zašlu .txt file jako binary data, tak se vrátí error. Ovsem po zobrazeni odeslaneho txt file v datove schrance je zobrazen base64 encoded content a ne puvodni obsah.

 

Vždy se jedná o zprávu se status code 1214 a message "Obsah souboru nebyl identifikován."

 

Odesílám zprávy pomocí PHP 7.0, je možně, že soap extension provede base64 encoding sám dle wsdl, ale proč by pak neencodoval txt files? Jde mi vlastně o to, zda se i do budoucna mohu spolehnout, že pdf soubory předávám jako binary data, nebo zda mate nejake hlubsi informace, co se to tam deje za magic...

 

Co jsem koukal do examples, tak tam ten soubor také není base64 encoded a přes SoapClient se posílá binary.

164.1 Re: CreateMessage s přílohou

602jsima 28.03.2018 06:54

Dobrý den.

Přílohy zpráv, předávané v elementu dmEncodedContent, musí být převedené do BASE64, jinak by volání služby CreateMessage skončilo chybou, jinou než 1214. Z vašeho popisu to vypadá, že vámi používaný toolkit ten požadavek sestaví správně syntakticky, ale skončí to na chybě kontroly souladu obsahu přílohy, použité přípony a/nebo MIME typu.

Obvykle bývá  pro začátek jednodušší používat interaktivní nástroje typu SoapUI a vidět, co vlastně posíláte. To XML je natolik jednoduché, že najít chybu je otázka sekund. Když ne, vložte ten požadavek sem a já vám řeknu, kde je problém.

 

Jan Šíma

ISDS

164.2 Re: CreateMessage s přílohou

jan.sesina@notservis.cz 19.04.2018 12:29

Dobrý den,

mám stejný problém při odesílání DZ s přílohou.

Zajímavé je, že z jiného PC odeslání DZ se stejnou přílohou projde bez chyby.

K odeslání DZ používám OperationsWebService.CreateMessage().

Jakým způsobem získám odesílaný XML požadavek?

 

Děkuji

164.2.1 Re: Re: CreateMessage s přílohou

602jsima 19.04.2018 12:43

Dobrý den.

 

Píšete, že stejná datová zpráva z jednoho stroje  odejde a z druhého ne - to bude spíš problém na Vaší straně.

Všem v podobném případě pomohlo, když si ten SOAP požadavek CreateMessage  sestavili ručně např. v programu SoapUI a zkoušeli kombinace příloh, jejich názvů a MIME typů, na tom se to naučili a pak to jen přenesli do svého programu. Víc nevím, jak poradit. Pokud budete mít požadavek, který nelze odeslat, vložte jej sem a řekneme Vám, co je s ním špatně.

 

Jan Šíma

ISDS