ich hatte folgendes Problem vor ca. einem Jahr schon mal direkt mit Torben besprochen: Wir steuern eigentlich seit vielen Jahren unseren Pira RDS-Encoder über den Pira WebRDS-Server. Im Wesentlichen generiert ein mAirList-Script die RDS-Befehle (z.B. “RT1=Ich bin Radiotext 1”) und schickt sie per HTTPPost an den Server.
Keine große Sache also.
In v4.2.2 funktionierte das auch noch, als wir auf v4.4.5 umgestiegen sind, funktionierte es nicht mehr.
Das seltsame: HTTPPost funktioniert an sich mit anderen Servern. Und der WebRDS-Server lässt sich auch mit diversen Browsern ansteuern. Nur die Kombination mAirList+WebRDS-Server funktioniert nicht.
Torben sagte, das einzige, was sich zwischen den beiden Versionen geändert hat, sei, dass er einen neuen Compiler verwendet. Insofern sind er und wir etwas ratlos.
Bevor wir weiter im Nebel stochern, werde wir in Kürze mal eine Analyse mit Wireshark o.ä. starten.
Bevor wir das starten würde mich mal interessieren: Ist hier irgendjemand in der Runde, der ebenfalls Pira WebRDS nutzt und mit mAirList ansteuert? Falls ja, habt Ihr ähnliche Erfahrungen gemacht?
Noch eine Frage an Torben:
Im Changelog zu v5.0 steht:
Version 5.0 RC Build 2552 (2014-11-07)
Changes during beta stage:
[ * ] New library used for all HTTP and FTP (replaced Synapse with Indy)
Betrifft das die HTTPPost-Funktion?
Ich habe gestern mal mit v5.1 das Skript getestet, weil ich Hoffnung hatte, dass die neue Library vielleicht was gebracht hätte. Leider Fehlanzeige.
Da das Problem erst ab dem zweiten Vorkommen auftritt, ist es bei dem Test mit der kleinen PHP-Page, die Du zum Testen gebaut hattest, nicht aufgefallen.
Teste bitte einmal den neuen Snapshot 2785 von mAirList 5.1.
Es gab tatsächlich kürzlich ein Problem (und Bugfix) hinsichtlich der Codierung der Parameter. Vielleicht ist das damit schon behoben. Sonst forsche ich noch einmal nach.
Das “normale” HTTPPost nimmt noch URL-Encodierung vor.
HTTPPostRaw nimmt die Daten wie sie sind, du musst also selbst dafür sorgen, dass sie passende codiert sind. Was in deinem einfachen Szenario bereits der fall ist.
EDIT:
Alternativ weiterhin HTTPPost verwenden, aber die Parameter nicht mit & sondern mit #13 (Zeilenumbruch) trennen:
Bei HTTPPostRaw ist mir nicht klar, wieviele und welche Variablen die Funktion erwartet. Bei (URL, Data) hat er sich über die falsche Anzahl von Variablen beschwert.