Guten Morgen!
Vielleicht kann man mir ja hier helfen
Ich habe die Aufgabe eine Datei von einem Server über http, bzw. https herunterzuladen.
Ich habe dazu die
URL, ggf. AUTH Username und AUTH Password, sowie notwendige Cookieinhalte und die dazugehörigen Domains.
Nun kriege ich das leider absolut nicht hin, meiner Funktion ein Cookie zu übergeben. Wie funktioniert das eigentlich?
Mein Code sieht im groben aus aus:
Code:
Private Function DownloadDATANORM(File As oFile) As String
'Const INET_RELOAD = &H80000000
Const INTERNET_FLAG_NO_COOKIES = &H80000
Dim hInet As Long
Dim hURL As Long
Dim Buffer As String * 2048
Dim bytes As Long
Dim i As Integer
ShowLoading "Folgende Datei wird heruntergeladen:" + vbCrLf + File.FileName
'Cookies setzen
For i = 0 To UBound(File.Cookies)
If (File.Cookies(i).Content <> "") Then
Call InternetSetCookie(File.Cookies(i).Domain, "DATANORM", File.Cookies( _
i).Content)
End If
Next
'Verbindung aufbauen
hInet = InternetOpen("DATANORM Online", OpenType, vbNullString, vbNullString, _
0)
hURL = InternetOpenUrl(hInet, File.URL, vbNullString, 0, _
INTERNET_FLAG_NO_COOKIES, 0)
'Datei herunterladen
intFileNum = FreeFile
Open App.Path + "\" + File.FileName For Binary As intFileNum
Do
InternetReadFile hURL, Buffer, Len(Buffer), bytes
If (bytes = 0) Then Exit Do
Put #intFileNum, , Left$(Buffer, bytes)
Loop
'Wieder alles schließen
Close intFileNum
InternetCloseHandle hURL
InternetCloseHandle hInet
End Function
Gebe ich eine
URL ein, die nicht durch Cookies geschützt ist, funktioniert das einwandfrei... Der Download funktioniert also...
Gebe ich nun aber eine durch Cookies geschützte Datei ein, bekomme ich vom Server nur die Antwort "Fehler" (das ist eine Testumgebung, daher so eine aussagekräftige Fehlermeldung )
Hat da jemand eine Idee?