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
ForEverDie 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!
						- 
				guruk
 - 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