Entwickler-Ecke
Internet / Netzwerk - WebService via SOAP liefert nur halbe Bildaten
OlafSt - Mo 09.10.17 14:18
Titel: WebService via SOAP liefert nur halbe Bildaten
Hallo Freunde,
ich habe hier ein merkwürdiges Problem. Ich verbinde mich mit einem Webservice via SOAP (kein REST). Ich rufe dann dort eine Routine auf, die mir ein JPG zurückgeben soll.
Allerdings kommt nur ein kurzes Stück des JPG hier an. Es sollten 16KB sein, werden aber nur 7. Was mache ich in den 5 Zeilen falsch ?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.GetFoto(SDAWNummer: string; Stelle: integer); var Soap: KR_BilderServerSOAP.ImageDBWSSoap; BildUID: string; B: TDynByteArray; begin Soap:=KR_BilderServerSOAP.GetImageDBWSSoap(true); BildUID:=Soap.FindFirstImageByCriteria(SDAWNummer, IntToStr(Stelle)); B:=Soap.Image_Load(BildUID, 260, 0); end; |
WSDL:
http://plakatonline.eshamburg.de/ImageDBView/ImageDBWS.asmx?wdsl
Bin absolut ratlos :cry:
Sinspin - Mo 09.10.17 14:44
Hey,
das wirkt als wäre da irgend ein Puffer zu klein geraten.
Schau mal in die generierte tlb zur wsdl ob da Warnungen zu erzeugten Typen enthalten sind.
Ansonsten versuch mal manuell einen Aufruf via Browser auszuführen und schau was an xml Daten geliefert wird.
Die Daten werden ja meißtens Base64 codiert, es sollte also 1/3 mehr sein als die erwartet Größe. Dann weist Du zumindest ob alles kommt.
€: Was passiert eigentlich wenn man den dritten Parameter in Image_Load nicht null lässt?
OlafSt - Mo 09.10.17 14:52
In der Delphi-Codedatei findet sich folgendes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| |
Hab aber keinen Schimmer, was ich damit anfangen soll, geschweige denn wie ich das Problem lösen soll.
Sinspin - Mo 09.10.17 15:24
Sowohl die wsdl als auch die erzeugte tlb sieht bei mir nicht schlecht aus.
Die Warnungen sind, glaube ich, nur Hinweise das einige Typen nicht eindeutig in ihrem Typ referenziert wurden und so einfach mit ihrem Namen lokal aufgelößt wurden. Scheint aber in allen Fällen geklapt zu haben. Es wird ja für "base64Binary" nach "TByteDynArray" übersetzt.
Muss aber nichts heißen, die einzige plausibele Erklärung ist für mich aktuell das entweder die Daten schon verstümmelt kommen oder beim auspacken was drauf geht.
Es gibt irgendwo in der Seifenkiste ein Ereignis mit dem man die Orginaldaten bekommen kann die geliefert werden. Die am besten mal anschauen.
€: Seife -> THTTPRIO.OnAfterExecute.
OlafSt - Mo 09.10.17 16:14
OnAfterExecute hatte ich auch schon ermittelt.
Folgendes XML kommt zurück:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <Image_LoadResponse xmlns="http://tempuri.org/"> <Image_LoadResult>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QwooooAKKKKACiiigAooooAKKKKACiiigAooooAkhhM2/DKoQZJY8U57aVWCgb9w3ApyCKW3kjRZlkLASJtyozjmp1uoFAQeZtRQFJHXnJyM11U6dKUVzOz/AK/Q55zqKTsrlMRuwJCMQvXA6U+KEyh23oqoASWNWheRbpC2/azswXHPPoc8VDazrCsoZmUuAAyjOOaFTpKa9661/wCAHPUcXpZ6DGtnViCy8AEEHgg9KFtZWnMQXJDbS2OAfrU73cbF/vnKoNxHLEHOaeL2LzVcmRdsjMAB94H1q/ZYdy+L+r/5E+0rJbf1YqRQPNv24AQZYmkSCR3jXaV3nClhgGnQzCNJhz864GPXNW2v4jKrjdjeGK7emB65qKdOjKKcnZ9fv/r7ypzqptRVymLeQsVKlSFLfMMZApHgkjkWN12s2MZ96nW6XygGLFgsgz/vdKZNMsk8UgLHaF3A9sUpQpKN09dBqVTms1oRtDIpcbSQhwzAcUGB94VQXOAflB4zVw30e1sbgcuR8uc5/GmfaomUqWkThDuUc/KOlW6NHpL+v60JVSr1iVngkR5F2lthwxUZAppRlAJUgHoSOtXzfRncRuU7mYfLnOfxqpcTeaYwCdqIFwfXvUVadKKbjK5VOdRu0lYhooormNwooooAKKKKACiiigAooooAKKKKACiiigAooooAhf77fWih/vt9aKYiYdB9KKB0H0opDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCF/vt9aKH++31opiJh0H0ooHQfSikMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIX++31oof77fWimImHQfSigdB9KKQwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAhf77fWih/vt9aKYiYdB9KKB0H0opDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCF/vt9aKH++31opiH+YcDgdBR5h9BRRSGHmH0FHmH0FFFAB5h9BR5h9BRRQAeYfQUeYfQUUUAHmH0FHmH0FFFAB5h9BR5h9BRRQAeYfQUeYfQUUUAHmH0FHmH0FFFAB5h9BR5h9BRRQAeYfQUeYfQUUUAHmH0FHmH0FFFAB5h9BR5h9BRRQAeYfQUeYfQUUUAHmH0FHmH0FFFAB5h9BR5h9BRRQAeYfQUeYfQUUUAHmH0FHmH0FFFAB5h9BR5h9BRRQAeYfQUeYfQUUUAHmH0FHmH0FFFAB5h9BR5h9BRRQAeYfQUeYfQUUUAHmH0FHmH0FFFAETud7cDrRRRTEf/Z </Image_LoadResult> </Image_LoadResponse> </soap:Body> </soap:Envelope> |
Um jetzt an das Mime-Encodete Bild heranzukommen, verwende ich folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| procedure TForm1.AfterExecute(const MethodName: string; SOAPResponse: TStream); var s: string; SS: TStringStream; P: TIdDecoderMIME; f: TEXTFILE; B: TIdBytes; T: TMemoryStream; doc: IXMLDocument; node: IXMLNode; begin if Uppercase(MethodName) = 'IMAGE_LOAD' then begin SS := TStringStream.Create(''); P:=TIdDecoderMIME.Create(nil); T:=TMemoryStream.Create; try SS.CopyFrom(SOAPResponse, 0); s := SS.DataString; doc:=LoadXMLData(s); node:=doc.DocumentElement.ChildNodes.Nodes['soap:Envelope']; node:=node.ChildNodes.Nodes['soap:Body']; node:=node.ChildNodes.Nodes['Image_LoadResponse']; node:=node.ChildNodes.Nodes['Image_LoadResult'];
s:=node.LocalName; s:=node.Text; exit;
B:=P.DecodeBytes(s); T.Write(B[0], Length(B)); T.Position:=0; Image1.Picture.LoadFromStream(T); finally SS.Free; T.Free; P.Free; end; end; end; |
Eigentlich sollte ich, nachdem ich mich durch das XML von Node zu Node gehangelt habe, in node.Text mein BASE64-Encoded Binärkrams haben, der das Bild repräsentiert. Nur ist node.Text
leer.
node.LocalName ist übrigens "Image_LoadResult".
Ich kapier das alles nicht mehr.
Sinspin - Mo 09.10.17 18:00
Wenn ich das richtig sehe ist das ein denkbar blödes Testbild. Zum Glück ist meine Testseite english. Da sollte dann nix auf deutsch kommen.
Also geliefert wird ein Bild. Ob vollständig oder nicht kann ich nicht bewerten da FF auf dann was anzeigt wenn ich das kodierte Bild verstümmele.
Ich habe gleich den ersten Google Treffer bei Suche nach "base64 decode image" verwendet um das bild zu visualisieren.
xml: Ich verwende immer eine bisschen andere Methode. Interessanterweise bekomme ich aber auch mit der die Daten nicht raus, sondern immer einen Fehler. Aber noch gebe ich nicht auf ;-)
€: Jetzt habe ich das gleiche Problem, keine Daten vorhanden. Interessant. Ich hatte so einen Fall vor einigen Jahren einmal. Muss mal sehen wie ich das gelößt habe.
Sinspin - Mo 09.10.17 18:57
Geschafft.
Habe mit ner Kanone auf ne Ameise geballert und nen Regenbogen bekommen.
Ich verwende msxml2. Sollte registriert sein, musste dir ne tlb für erzeugen.
Zum Decodieren von Base64 verwende ich die unit "encddecd" ist seit mindestens EX2 vorhanden und hat nicht zig Warnungen im Quelltext.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| var XMLDoc: IXMLDOMDocument; sl: TStringList; s: string; T: TStringStream;
begin CoInitialize(nil);
sl := TStringList.Create; T := TStringStream.Create(''); try sl.LoadFromFile('C:\Users\Public\wsdl_test.txt');
XMLDoc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument; XMLDoc.LoadXML(sl.Text); s := XMLDoc.documentElement.selectSingleNode('./soap:Body/Image_LoadResponse/Image_LoadResult').text; if s <> '' then begin s := DecodeString(s); T.WriteString(s); T.Position := 0; t.SaveToFile('C:\Users\Public\wsdl_test_pic.jpg'); Image1.Picture.LoadFromFile('C:\Users\Public\wsdl_test_pic.jpg'); end; finally T.Free; sl.Free; end; CoUninitialize; end; |
So ist zumindest der Beweis erbracht das ein vollständiges Bild geliefert wird. Warum es nun beim import via Soap nicht klappt steht auf einem anderen Blatt.
OlafSt - Di 10.10.17 10:29
Dies hat wunderbar funktioniert, @SinSpin. Tausend dank für deine Hilfe.
Die Unit EncdDecd hat etliches an deprecated drin, mit der Empfehlung doch bitte System.NetEncoding zu verwenden. Habe ich getan, geht genauso prima. Nun bekomme ich auch Bilder angezeigt.
Grazie Mille.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!