[Gambas-user] Problem retreiving Headers with HttpClient

Laurent Carlier lordheavym at ...626...
Tue Jul 10 22:59:29 CEST 2007


I'm delepping some kind of file downloader and i need to retreive the header 
of the file i try to download if i want to guess the size of the file 
(currently tagged with 'Content - Length:')

Unfortunatly i don't succeed :-/, the header i retreive is empty or garbaged. 
I don't know if i've made a mistake or if it's a bug. The same url give a 
correct header with hhtpget example.

The code :
PUBLIC _Download AS NEW HttpClient AS "_Download"

PRIVATE downloadBuffer AS String
PRIVATE sTempFile AS String

' Destination file
PRIVATE sDestFile AS String
PRIVATE oDestFile AS Stream
PRIVATE iDestFileSize AS Integer
PRIVATE iDestFileCurrentSize AS Integer

PUBLIC SUB run(URL AS String)
  
  downloadBuffer = ""
  
  WITH _Download
    .URL = URL
    .UserAgent = "Gambas Http/1.0"
    .Get()
  END WITH 

END

PUBLIC SUB _Download_Connect()

  PRINT "Connection found " & _download.URL
  SLEEP 2
END

PUBLIC SUB _Download_Read()

  DIM buffer AS String
  DIM size AS Integer
  DIM myLoop AS Integer
  
  size = iDestFileSize
  
  ' Check for the size of the downloaded file
  IF (size = 0)
    FOR myLoop = 0 TO _Download.Headers.Count - 1
      IF (InStr(_Download.Headers[MyLoop], "Content - Length:") > 0) THEN 
PRINT "length found"
    NEXT 
  ENDIF 
    
  IF Lof(LAST)
    iDestFileCurrentSize = iDestFileCurrentSize + Lof(LAST)
    IF (size = 0) THEN size = iDestFileCurrentSize 
    READ #LAST, buffer, Lof(LAST)
    downloadBuffer &= buffer
    PRINT iDestFileCurrentSize & " Downnload on " & size
  ENDIF 
  
END

PUBLIC SUB _Download_Error()

  PRINT "Error " & _download.Status & " downloading " & _download.URL

END

PUBLIC SUB _Download_Finished()

   FOR myLoop = 0 TO _Download.Headers.Count - 1
       PRINT _Download.Headers[MyLoop]
   NEXT 

  PRINT "finished"

END


Regards,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20070710/d94c0ecd/attachment.sig>


More information about the User mailing list