HTTP-Download (paritial get, Head, unbekannte Dateigröße,...
Das disconnect-erkennung läuft dann nicht, aber die eigentlich netzwerk-funktion sind ja PB-Interne. die API_ lassen sich auf einfache Datei-Routinen ummünzen.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
wenn ich einen Download abbreche schreibe ich einfach nur den HTTP_CloseURL(Get) Befehl, oder?
Bei mir meckert nämlich Windows (wenn ich se lösch), dass die Datei noch in Verwendung is.
Muss ich die Datei auch noch schließen? Bspw. über CloseFile()?
Bei mir meckert nämlich Windows (wenn ich se lösch), dass die Datei noch in Verwendung is.
Muss ich die Datei auch noch schließen? Bspw. über CloseFile()?
Windows XP Pro SP2 - PB 4.00Ich bin Ausländer - fast überall
Noch ein Problem:
Ich hab eine Window-Anwendung, und hab den Bsp.-Code, den du zuletzt gepostet hast versucht zu portieren.
Wenn alles heruntergeladen wurde kommt die Fehlermeldung (im Debugger), dass die NetworkConnectionID = 0 sei.
Hier mein Testcode, in der Include download.pbi sind die ganzen Funktionen von dir.
Die Datei ist übrigens vollständig heruntergeladen.
Ich hab eine Window-Anwendung, und hab den Bsp.-Code, den du zuletzt gepostet hast versucht zu portieren.
Wenn alles heruntergeladen wurde kommt die Fehlermeldung (im Debugger), dass die NetworkConnectionID = 0 sei.
Hier mein Testcode, in der Include download.pbi sind die ganzen Funktionen von dir.
Code: Alles auswählen
IncludeFile "download.pbi"
Enumeration
#Window
#Progressbar
#Button_Submit
#Button_Abort
EndEnumeration
Procedure Window()
If OpenWindow(#Window, 0, 0, 300, 55, #PB_Window_TitleBar | #PB_Window_ScreenCentered, "GetIt")
If CreateGadgetList(WindowID())
ProgressBarGadget(#Progressbar, 5, 5, 290, 20, 0, 100)
ButtonGadget(#Button_Abort, 5, 30, 85, 20, "Abbrechen")
ButtonGadget(#Button_Submit, 210, 30, 85, 20, "Download")
EndIf
EndIf
EndProcedure
Window()
DoingDownload = #False
InitNetwork()
While WindowEvent() <> 0 : Wend
Repeat
If DoingDownload : Event = WindowEvent()
Else : Event = WaitWindowEvent() : EndIf
Select Event
Case #PB_Event_CloseWindow
If DoingDownload = #True : HTTP_CloseURL(Get2.HTTPGetId) : DoingDownload = #False : CloseWindow(#Window) : Break
Else : CloseWindow(#Window) : Break : EndIf
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Button_Abort
If DoingDownload = #True : HTTP_CloseURL(Get2.HTTPGetId) : DoingDownload = #False : DisableGadget(#Button_Submit, 0)
Else : CloseWindow(#Window) : Break : EndIf
Case #Button_Submit
If HTTP_OpenUrl(Get2.HTTPGetId,"C:\test.zip","http://www.sedtech.com/isedquickpdf/downloads/4.35/iSQP0435DLL.zip","","",0,"",1024)
SetGadgetState(#Progressbar, 0) : DisableGadget(#Button_Submit, 1) : DoingDownload = #True
EndIf
EndSelect
EndSelect
If DoingDownload
If HTTP_ReceiveData(Get2)
SetGadgetState(#Progressbar, HTTP_GetProgress(Get2))
Else
DoDownload = #False
DisableGadget(#Button_Submit, 0)
HTTP_CloseURL(Get2)
EndIf
Delay(10)
EndIf
ForEver
Die Datei ist übrigens vollständig heruntergeladen.
Windows XP Pro SP2 - PB 4.00Ich bin Ausländer - fast überall
Code: Alles auswählen
If DoingDownload
If HTTP_ReceiveData(Get2)
Debug "*"+Str(HTTP_GetFileReceived(Get2))
SetGadgetState(#Progressbar, HTTP_GetProgress(Get2))
Else
Debug "-"
DoingDownload = #False
DisableGadget(#Button_Submit, 0)
HTTP_CloseURL(Get2)
EndIf
Delay(10)
EndIf
Die Datei sollte eigentlich geschlossen werden, was bei mir auch passiert (das mit http_closeurl())
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Du solltest aber auch kontrollieren, ob ein Fehler passiert ist, etc. Momentan gehst du einfach davon aus, das alles ok ist.
Das größte Problem in Sachen Multitasking ist allerdings das OpenNetworkConnection(). Sollange der Server gesucht wird, ist das Program angehalten. Das dauert bei guter Verbindung gottseidank nicht lange...
p.s.: Wenn du japbe hast und die aktuelle Beta updatest: Das Include HTTP.pbi ist der oben gepostete code.
Das größte Problem in Sachen Multitasking ist allerdings das OpenNetworkConnection(). Sollange der Server gesucht wird, ist das Program angehalten. Das dauert bei guter Verbindung gottseidank nicht lange...
p.s.: Wenn du japbe hast und die aktuelle Beta updatest: Das Include HTTP.pbi ist der oben gepostete code.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
die RAR downzuloaden und auf Update zu klicken?bluejoke hat geschrieben:die Fehlersuch-Routine wollt ich noch einbauen...
ich benutze zwar jaPBe (übrigens saugeil!) aber momentan nicht die aktuelle Version *zu-faul-bin*
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
-
- Beiträge: 45
- Registriert: 18.08.2005 16:14
- Wohnort: Egypt / Red Sea / South Sinai / Dahab
- Kontaktdaten:
Re: HTTP-Download (paritial get, Head, unbekannte Dateigröße
HAllo GPI,
cooler Code,
ich wuerde ihn gerne verwenden, jedoch fuer die Seite welche ich aufrufe (ist eine LoginSeite) muesste es Cookies verarbeiten.
Hast Du dazu noch ne kleine Routine?
Bekomme jetzt immer: Login nicht moeglich, Ihr Browsre muss Cookies akzeptieren.
Greets
chris
cooler Code,
ich wuerde ihn gerne verwenden, jedoch fuer die Seite welche ich aufrufe (ist eine LoginSeite) muesste es Cookies verarbeiten.
Hast Du dazu noch ne kleine Routine?
Bekomme jetzt immer: Login nicht moeglich, Ihr Browsre muss Cookies akzeptieren.
Greets
chris