Seite 2 von 2
Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 13.01.2011 19:39
von ts-soft
@HeX0R
Danke für den Tipp, eingebaut, sowie eine weitere Sicherheitsmaßnahme.
@DarkDragon
Dann mach mal, ich hab doch keine Ahnung von HTTP, dies ist ein zaghafter Versuch.
Wenns denn Sinn macht und einbaubar ist, werde ich es dann nutzen

Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 13.01.2011 20:13
von Nino
Der Code (also der im 1. Beitrag hier) funktioniert so nicht immer -- hab's gerade auch getestet.
Je nach Betriebssystem des Servers kann es sein, dass bei der lokalen Pfadangabe die Groß-/Kleinschreibung berücksichtigt wird. Der Code darf die Schreibung der URL also nicht ändern, das LCase() darf nur für den Vergleich benutzt werden. Statt
Code: Alles auswählen
URL = LCase(URL)
If Left(URL, 7) <> "http://" : URL = "http://" + URL : EndIf
muss es daher heißen
Code: Alles auswählen
If LCase(Left(URL, 7)) <> "http://" : URL = "http://" + URL : EndIf
Grüße, Nino
Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 13.01.2011 20:22
von ts-soft
Dank Nino, sehr wichtiger Hinweis. Ich bin ja manchmal auch schuselig, liegt am Alter
Sowas sollte nicht passieren.
Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 13.01.2011 21:30
von Captn. Jinguji
Sicher eher ein Spezialfall, aber das LCase auf die URL führt bei YouTube Urls zu verfälschten Keys:
richtig :
http://www.youtube.com/watch?v=zQQ5sEOhbjQ
falsch :
http://www.youtube.com/watch?v=zqq5seohbjq
Kann raus, oder ?
Ansonsten auch von mir ein Dankeschön.
Edith: Mist sehe gerade, dass Nino praktisch das Gleiche in anderen Worten gepostet hat
Sorry
Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 13.01.2011 22:16
von ts-soft
Das mit dem LCase ist doch bereits gefixed
Hier noch ein Crossplattform Beispiel:
Code: Alles auswählen
If InitSound() = 0
MessageRequester("Error", "Can't initialize sound playback !", 0)
End
EndIf
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize network !", 0)
End
EndIf
Define *Mem = ReceiveHTTPMemory("http://realsource.de/tmp/popc0rn.xm")
If *Mem
If CatchModule(0, *Mem, MemorySize(*Mem))
PlayModule(0)
MessageRequester("popc0rn.xm", "Press okay to stop!")
EndIf
FreeMemory(*Mem)
EndIf
Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 14.01.2011 05:54
von Kevin
hab noch einen kleinen fehler gefunden:
Code: Alles auswählen
InitNetwork()
*mem = ReceiveHTTPMemory("http://www.purebasic.fr/blog/")
Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 14.01.2011 08:32
von Shardik
ts-soft hat geschrieben:Hier noch ein Crossplattform Beispiel:
Code: Alles auswählen
If InitSound() = 0
MessageRequester("Error", "Can't initialize sound playback !", 0)
End
EndIf
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize network !", 0)
End
EndIf
Define *Mem = ReceiveHTTPMemory("http://realsource.de/tmp/popc0rn.xm")
If *Mem
If CatchModule(0, *Mem, MemorySize(*Mem))
PlayModule(0)
MessageRequester("popc0rn.xm", "Press okay to stop!")
EndIf
FreeMemory(*Mem)
EndIf
Hallo Thomas,
Dein "Crossplattform"-Beispiel funktioniert bei mir problemlos unter Windows XP SP3 x86,
Windows 7 x86 und andLinux/Kubuntu 9.04 x86. Aber auf meinem iMac mit MacOS X
10.6.6 funktioniert es nicht zufriedenstellend: das Musik-Modul wird zwar geladen und
abgespielt, aber es ertönt ein sehr lautes Rauschen beim Abspielen und die Melodie ist nur
zu "erahnen"

. Dies wird ein Fehler in der PlayModule()-Funktion der Mac-Version sein
und ich werde den Fehler nach einer noch zu erfolgenden genaueren Analyse mit Deinem
Beispiel-Code im englischen Mac Bug-Forum melden, damit Fred oder freak sich der Sache
annehmen können...
Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 14.01.2011 10:15
von Rings
thx for sharing

Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 14.01.2011 17:37
von bobobo
cool

.. endlich mal anständiges was mit timeout (was mir in der ReceiveHTTPFile() von Pb eigentlich immer fehlt)
Re: ReceiveHTTPMemory einfach und Crossplattform
Verfasst: 18.01.2011 07:48
von dige
... jetzt fehlt eigentlich nur noch die Proxy-Funktionalität..