Re: HTTPS Download File
Verfasst: 21.05.2018 18:35
Zeig mal deinen Beispielcode, der nicht funktioniert.
Code: Alles auswählen
rocedure.s GetQueryInfo(hHttpRequest.l, iInfoLevel.l)
lBufferLength.l=0
lBufferLength = 1024
sBuffer.s=Space(lBufferLength)
HttpQueryInfo_(hHttpRequest, iInfoLevel, sBuffer, @lBufferLength, 0)
; Debug sBuffer
ProcedureReturn Left(sBuffer, lBufferLength)
EndProcedure
Procedure _CheckUrlFileSize(URL.s)
res.s=""
tmp.s=""
OpenType.b=1
INTERNET_FLAG_RELOAD.l = $80000000
INTERNET_DEFAULT_HTTP_PORT.l = 80
INTERNET_SERVICE_HTTP.l = 3
HTTP_QUERY_STATUS_CODE.l = 19
HTTP_QUERY_STATUS_TEXT.l = 20
HTTP_QUERY_RAW_HEADERS.l = 21
HTTP_QUERY_RAW_HEADERS_CRLF.l = 22
hInet = InternetOpen_("", OpenType, #Null, #Null, 0)
hURL = InternetOpenUrl_(hInet, URL, #Null, 0, INTERNET_FLAG_RELOAD, 0)
;get Filesize
domain.s = ReplaceString(Left(URL,(FindString(URL, "/",8) - 1)),"https://","")
hInetCon = InternetConnect_(hInet,domain, INTERNET_DEFAULT_HTTP_PORT, #Null, #Null, INTERNET_SERVICE_HTTP, 0, 0)
If hInetCon > 0
hHttpOpenRequest = HttpOpenRequest_(hInetCon, "HEAD", ReplaceString(URL,"https://"+domain+"/",""), "", #Null, 0, INTERNET_FLAG_RELOAD, 0)
If hHttpOpenRequest > 0
iretval = HttpSendRequest_(hHttpOpenRequest, #Null, 0, 0, 0)
If iretval > 0
tmp = GetQueryInfo(hHttpOpenRequest, HTTP_QUERY_STATUS_CODE)
If Trim(tmp) = "200"
tmp = GetQueryInfo(hHttpOpenRequest, HTTP_QUERY_RAW_HEADERS_CRLF)
; Debug tmp
If FindString(tmp,"Content-Length:",1)>0
ii.l=FindString(tmp, "Content-Length:",1) + Len("Content-Length:")
tmp = Mid(tmp, ii, Len(tmp)-ii)
myMax = Val(Trim(tmp))
EndIf
EndIf
EndIf
EndIf
EndIf
InternetCloseHandle_(hURL)
InternetCloseHandle_(hInet)
ProcedureReturn myMax
EndProcedure
Debug _CheckUrlFileSize("https://www.rsbasic.de/downloads/live_backup_system.zip")
Code: Alles auswählen
Procedure _CheckUrlFileSizenew(URL.s)
FileSize=0
FileSizet.s=Space(20)
OpenType.b=1
INTERNET_FLAG_RELOAD.l = $80000000
INTERNET_DEFAULT_HTTP_PORT.l = 80
INTERNET_SERVICE_HTTP.l = 3
HTTP_QUERY_STATUS_CODE.l = 19
HTTP_QUERY_STATUS_TEXT.l = 20
HTTP_QUERY_RAW_HEADERS.l = 21
HTTP_QUERY_RAW_HEADERS_CRLF.l = 22
hInet = InternetOpen_("", OpenType, #Null, #Null, 0)
; Debug hInet
hURL = InternetOpenUrl_(hInet, URL, #Null, 0, 0, 0)
StateCode =Val( GetQueryInfo(hURL, #HTTP_QUERY_STATUS_CODE) )
; Debug StateCode
If StateCode =200
Size=Len(FileSizet)
#HTTP_QUERY_CONTENT_LENGTH=5
HttpQueryInfo_(hURL,#HTTP_QUERY_CONTENT_LENGTH,@FileSizet,@Size,#Null)
FileSize=Val(FileSizet)
; Debug FileSize
EndIf
InternetCloseHandle_(hURL)
InternetCloseHandle_(hInet)
ProcedureReturn FileSize
EndProcedure
debug _CheckUrlFileSizenew("https://www.rsbasic.de/downloads/live_backup_system.zip")
Code: Alles auswählen
InitNetwork()
If ReceiveHTTPFile("https://www.rsbasic.de/downloads/live_backup_system.zip", "D:\live_backup_system.zip")
Debug "Success"
Else
Debug "Failed"
EndIf
Ich kenne eine Menge Betriebe, die an ihrem geliebten XP festhalten... Da wird der einst angeschaffte RechnerRSBasic hat geschrieben:Aber warum ist ein über 16 Jahre altes Betriebssystem XP für dich so wichtig?