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 :wink:

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 :mrgreen:
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 :wink:

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" :wink:. 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 :mrgreen: .. 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..