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:54Dobrý 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:29Dobrý 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:43Dobrý 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