Seite 3 von 3

Verfasst: 01.01.2005 20:53
von GPI
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.

Verfasst: 04.01.2005 19:13
von bluejoke
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()?

Verfasst: 04.01.2005 20:22
von bluejoke
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.

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.

Verfasst: 04.01.2005 21:27
von GPI

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 
Doingdownload nicht dodownload!

Die Datei sollte eigentlich geschlossen werden, was bei mir auch passiert (das mit http_closeurl())

Verfasst: 04.01.2005 21:36
von bluejoke
muchas gracias signor

Verfasst: 04.01.2005 21:45
von GPI
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.

Verfasst: 05.01.2005 01:11
von bluejoke
die Fehlersuch-Routine wollt ich noch einbauen...
ich benutze zwar jaPBe (übrigens saugeil! :allright: ) aber momentan nicht die aktuelle Version *zu-faul-bin*

Verfasst: 05.01.2005 16:01
von GPI
bluejoke hat geschrieben:die Fehlersuch-Routine wollt ich noch einbauen...
ich benutze zwar jaPBe (übrigens saugeil! :allright: ) aber momentan nicht die aktuelle Version *zu-faul-bin*
die RAR downzuloaden und auf Update zu klicken?

Verfasst: 05.01.2005 16:26
von bluejoke
jep...


nöö, du kennst doch sciher den Grundsatz: "Never change a running system"

Re: HTTP-Download (paritial get, Head, unbekannte Dateigröße

Verfasst: 21.08.2005 14:22
von guruk
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