ich hole mir per HTTPRequest() eine JSON kodierte Userliste von einem PHP script.
Das ganze passiert mit folgendem (nicht allein lauffähigen) Codeschnippsel:
Code: Alles auswählen
[...]
Global JsonString.s
Procedure HttpGetEvent(Success, Result$, UserData)
If Success
JsonString = Result$
Else
Debug "Error"
JsonString = ""
EndIf
EndProcedure
Procedure ExtractJSON()
HTTPRequest(#PB_HTTP_Post, "http://127.0.0.1/test/getusers.php", "getusers=all", @HttpGetEvent())
Debug "Get Users"
Debug JsonString
[...]
EndProcedure
Das Problem ist, dass beim ersten Aufruf der String 'JsonString' leer ist. Erst beim zweiten Aufruf der Prozedur läuft alles wie gewünscht.
Ich vermute, dass der HTTPRequest() Aufruf wieder zurückkommt, bevor die Übertragung der Daten abgeschlossen ist. Kann das sein?
Demzufolge ist 'JsonString' noch nicht gefüllt, wenn es per Debug ausgegeben wird.
Liege ich damit richtig oder hat das Verhalten eine andere Ursache?
Kurzer