Laden einer Datei per HTML-Protokoll aus dem I-Net
Übersicht

![]() |
TheMatrixBetreff: Laden einer Datei per HTML-Protokoll aus dem I-Net |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi BB Freunde,
ich habe ein Problem. Undzwar möchte ich HTML-Dateien aus dem I-Net per HTML-Protokoll laden. Wie das geht, weiß ich, nur weiß ich nicht, wie man die Dateien richtig abspeichert. Hier mal ein Beispiel, was ich mein: Code: [AUSKLAPPEN] Graphics 640, 480, 16 stream = OpenTCPStream("www.blitzforum.de", 80) WriteLine stream, "GET http://www.blitzforum.de/upload/file.php?id=1868 HTTP/1.1" WriteLine stream, "Host: www.blitzforum.de" WriteLine stream, "" While Not Eof(stream) If file WriteLine file, st$ Print st$ If st$ = "" And file = 0 file = WriteFile("C:\Test.jpeg") st$ = ReadLine$(stream) If ReadAvail(stream) = 0 Exit Wend CloseFile file CloseTCPStream stream Sollte eigentlich richtigerweiße dieses Photo unter C:\Test.jpeg Habt ihr ne Idee wie man die Datei richtig abspeichert? Gruß, Manu |
||
°_° °.° °~° °v° .. -.- |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moment, HTML ist aber kein Protokoll, sondern eine Textsprache.
Und was du dir runterziehen willst ist auch keine HTML Datei, sondern ein Bild. Kann man in der Tat machen, aber dein Code weicht etwas davon ab. Du musst so tun als ob dein Script Enter drückt, also musst du Code: [AUSKLAPPEN] WriteLine stream, "GET http://www.blitzforum.de/upload/file.php?id=1868" ;HTTP/1.1 <-- kann man weglassen
;WriteLine stream, "Host: www.blitzforum.de" <-- das is müll WriteLine stream, chr$(13) ;enter/Absatz schreiben. Den Rest solltest du selbst hinbekommen. |
||
Starfare: Worklog, Website (download) |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
du musst das byteweise runterladen und nicht zeilen weise da ne zeile entweder mit Chr(13) oder mit Chr(10) oder mit beidem beedet wird. Writefile speichert aber immer chr(13)+chr(10) ab also können bytes verfälscht werden.
übrigens wenn man funpic nicht Host-zeile sendet verweigert er den dienst. |
||
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Moment, HTML ist aber kein Protokoll, sondern eine Textsprache.
Und was du dir runterziehen willst ist auch keine HTML Datei, sondern ein Bild. Kann man in der Tat machen, aber dein Code weicht etwas davon ab. Du musst so tun als ob dein Script Enter drückt, also musst du Code: [AUSKLAPPEN] [EINKLAPPEN] WriteLine stream, "GET https://www.blitzforum.de/uplo...1868" ;HTTP/1.1 <-- kann man weglassen ;WriteLine stream, "Host: www.blitzforum.de" <-- das is müll WriteLine stream, chr$(13) ;enter/Absatz HTML-Code ist ne Skriptsprache, ja. Aber wenn ich per Code: [AUSKLAPPEN] GET http://www.blitzforum.de/upload/file.php?id=1868" ;HTTP/1.1 abfrage, dann ist das eine Abfrage über das HTML-Protokoll ![]() Zitat: du musst das byteweise runterladen und nicht zeilen weise da ne zeile entweder mit Chr(13) oder mit Chr(10) oder mit beidem beedet wird. Writefile speichert aber immer chr(13)+chr(10) ab also können bytes verfälscht werden. übrigens wenn man funpic nicht Host-zeile sendet verweigert er den dienst. Stimmt ich Trottel ^^ Hab wohl ein wenig überschnell gecodet. Big Thx!!! Gruß, Manu |
||
°_° °.° °~° °v° .. -.- |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, also runterladen kann ich nun meine Files, aber ich habe gleich das nächste Problem....
Undzwar hängt sich BB auf, wenn es nichts mehr aus dem Stream zu lesen gibt bzw. wenn er an die Zeile "if eof(stream) then exit" kommt. Kann man das umgehen, oder ist das normal das sich BB dann aufhängt? ![]() Gruß, Manu Edit: Der Code...Code: [AUSKLAPPEN] Graphics 640, 480, 16
stream = OpenTCPStream("www.blitzforum.de", 80) WriteLine stream, "GET http://www.blitzforum.de HTTP/1.1" WriteLine stream, "Host: www.blitzforum.de" WriteLine stream, "" MaxLoadTime = 1000 / 60 While Not KeyHit(1) Cls Print "Durchlauf " + MilliSecs() time = MilliSecs() While LoadFinished = False If file = 0 st$ = ReadLine$(stream) If st$ = "" Then file = WriteFile("C:\Test.html") Else byte = ReadByte(stream) WriteByte file, byte If Eof(stream) LoadFinished = True : CloseFile file : Exit End If If MilliSecs() - time > MaxLoadTime Then Exit Wend Wend Gruß, manu |
||
°_° °.° °~° °v° .. -.- |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
2 Dinge:
- Das Protokoll heißt HTTP (wie auch aus dem von dir verlinkten Artikel durchsickert) und nicht HTML. - Doppelposts sind nicht toll, bitte vermeiden! |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
frag mal nicht EoF(stream)[Ende der Datei] sondern Readavil(stream)=0[nichts mehr im stream] | ||
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry wegen Doppelpost...
Cool, danke Ftc, funzt wunderbar. Und die Ladezeit... GENIAL! Kann endlich meine Render Engine weiter proggen *freu*. Gruß, Manu Wen's interessiert, der Code: [AUSKLAPPEN] Graphics 640, 480, 16
stream = OpenTCPStream("screenshots.softonic.com", 80) WriteLine stream, "GET http://screenshots.softonic.com/s2de/30000/30744/0_30744.jpg HTTP/1.1" WriteLine stream, "Host: screenshots.softonic.com" WriteLine stream, "" MaxLoadTime = 1000 / 40 Delay 500 While Not KeyHit(1) Locate 0,0 : Cls If file>0 Print "Existierende Bytes im Stream: " + ReadAvail(stream) + " Byte" Else Print "Transaktion abgeschlossen..." End If Print "Timer: " + MilliSecs() time = MilliSecs() newmax = ReadAvail(stream) If ReadAvail(stream) = 0 If file>0 And MilliSecs() > zeit + 50 Then CloseFile file : file = 0 Else zeit = MilliSecs() End If While ReadAvail(stream) If file = 0 st$ = ReadLine$(stream) If st$ = "" Then file = WriteFile("C:\Test.jpg") Else byte = ReadByte(stream) WriteByte file, byte End If If MilliSecs() - time > MaxLoadTime Then Exit Wend Flip 0 Wend |
||
°_° °.° °~° °v° .. -.- |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group