httpstream.bmx 1.0 KB

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