httpstream.bmx 880 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. Strict
  2. Module BRL.HTTPStream
  3. ModuleInfo "Version: 1.02"
  4. ModuleInfo "Author: Mark Sibly"
  5. ModuleInfo "License: zlib/libpng"
  6. ModuleInfo "Copyright: Blitz Research Ltd"
  7. ModuleInfo "Modserver: BRL"
  8. ModuleInfo "History: 1.02 Release"
  9. Import BRL.SocketStream
  10. Type THTTPStreamFactory Extends TStreamFactory
  11. Method CreateStream:TStream( url:Object,proto$,path$,readable,writeable )
  12. If proto="http"
  13. Local i=path.Find( "/",0 ),server$,file$
  14. If i<>-1
  15. server=path[..i]
  16. file=path[i..]
  17. Else
  18. server=path
  19. file="/"
  20. EndIf
  21. Local stream:TStream=TSocketStream.CreateClient( server,80 )
  22. If Not stream Return
  23. stream.WriteLine "GET "+file+" HTTP/1.0"
  24. stream.WriteLine "Host: "+server
  25. stream.WriteLine ""
  26. While Not Eof( stream )
  27. If Not stream.ReadLine() Exit
  28. Wend
  29. Return stream
  30. EndIf
  31. End Method
  32. End Type
  33. New THTTPStreamFactory