logo

class

wisp::WispReq

sys::Obj
  web::WebReq
    wisp::WispReq
  1  //
  2  // Copyright (c) 2007, Brian Frank and Andy Frank
  3  // Licensed under the Academic Free License version 3.0
  4  //
  5  // History:
  6  //   27 Jun 07  Brian Frank  Creation
  7  //
  8  
  9  using web
 10  
 11  **
 12  ** WispReq
 13  **
 14  class WispReq : WebReq
 15  {
 16    new make(WispService service, InStream in)
 17    {
 18      this.service = service
 19      this.in = in
 20    }
 21  
 22    override WispService service
 23    override Str method
 24    override Version version
 25    override Uri suffixUri
 26    override Uri prefixUri
 27    override Str:Str headers
 28    override UserAgent userAgent
 29    override Uri uri
 30    override Str:Obj stash := Str:Obj[:]
 31    override InStream in
 32  
 33    override Str:Str form
 34    {
 35      get
 36      {
 37        if (@form == null && headers["Content-Type"] == "application/x-www-form-urlencoded")
 38        {
 39          len := headers["Content-Length"]
 40          if (len == null) throw IOErr.make("Missing Content-Length header")
 41          @form = Uri.decodeQuery(in.readLine(len.toInt))
 42        }
 43        return @form
 44      }
 45    }
 46  }