beego 之 context 上下文模塊

針對  HTTP  請求中,request (Input)和 response (Output)的進一步封裝。context 對象是對 Input 和 Output 的封裝。json

Input 對象

具體方法以下:緩存

  • Protocol 獲取用戶請求的協議,例如 HTTP/1.0
  • Uri 用戶請求的 RequestURI,例如 /hi?id=1001
  • Url 請求的 URL 地址,例如 /hi
  • Site 請求的站點地址,scheme+doamin 的組合,例如 http://beego.me
  • Scheme 請求的 scheme,例如 "http" 或者 "https"
  • Domain 請求的域名,例如 beego.me
  • Host 請求的域名,和 domain 同樣
  • Method 請求的方法,標準的 HTTP 請求方法法,例如 GET 、 POST 等
  • Is 判斷是不是某一個方法,例如 Is("GET") 返回 true
  • IsAjax 判斷是不是 AJAX 請求,若是是返回 true,不是返回 false
  • IsSecure 判斷當前請求是否 HTTPS 請求,是返回 true,否返回 false
  • IsWebsocket 判斷當前請求是否 Websocket 請求,若是是返回 true,否返回 false
  • IsUpload 判斷當前請求是否有文件上傳,有返回 true,否返回 false
  • IP 返回請求用戶的 IP,若是用戶經過代理,一層一層剝離獲取真實的 IP
  • Proxy 返回用戶代理請求的全部 IP
  • Refer 返回請求的 refer 信息
  • SubDomains 返回請求域名的根域名,例如請求是 blog.beego.me ,那麼調用該函數返回 beego.me
  • Port 返回請求的端口,例如返回 8080
  • UserAgent 返回請求的 UserAgent ,例如 Mozilla/5.0 (Macintosh; Intel Mac OSX 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/31.0.1650.57 Safari/537.36
  • Param 在路由設置的時候能夠設置參數,這個是用來獲取那些參數的,例如Param(":id") ,返回12
  • Query 該函數返回 Get 請求和 Post 請求中的全部數據,和 PHP 中$_REQUEST 相似
  • Header 返回相應的 header 信息,例如 Header("Accept-Language") ,就返回請求頭中對應的信息 zh-CN,zh;q=0.8,en;q=0.6
  • Cookie 返回請求中的 cookie 數據,例如 Cookie("username") ,就能夠獲取請求頭中攜帶的 cookie 信息中 username 對應的值
  • Session session 是用戶能夠初始化的信息,默認採⽤用了 beego 的 session 模塊中的 Session 對象,用來獲取存儲在服務器端中的數據。
  • Body 返回請求 Body 中數據,例如 API 應用中,不少用戶直接發送 json 數據包,那麼經過 Query 這種函數沒法獲取數據,就必須經過該函數獲取數據。該函數已經beego1.5版本以後刪除,目前能夠經過RequestBody獲取數據。
  • GetData 用來獲取 Input 中 Data 中的數據
  • SetData 用來設置 Input 中 Data 的值,上面 GetData 和這個函數都是用來方便用戶在 Filter 中傳遞數據到 Controller 中來執行

Output 對象

Output 是針對 Response 的封裝,裏面提供了不少方便的用法:服務器

  • Header 設置輸出的 header 信息,例如 Header("Server","beego")
  • Body 設置輸出的內容信息,例如 Body([]byte("astaxie"))
  • Cookie 設置輸出的 cookie 信息,例如Cookie("sessionID","beegoSessionID")
  • Json 把 Data 格式化爲 Json,而後調用 Body 輸出數據
  • Jsonp 把 Data 格式化爲 Jsonp,而後調用 Body 輸出數據
  • Xml 把 Data 格式化爲 Xml,而後調用 Body 輸出數據
  • Download 把 file 路徑傳遞進來,而後輸出文件給用戶
  • ContentType 設置輸出的 ContentType
  • SetStatus 設置輸出的 status
  • Session 設置在服務器端保存的值,例如 Session("username","astaxie") ,這樣用戶就能夠在下次使用的時候讀取
  • IsCachable 根據 status 判斷,是否爲緩存類的狀態
  • IsEmpty 根據 status 判斷,是否爲輸出內容爲空的狀態
  • IsOk 根據 status 判斷,是否爲 200 的狀態
  • IsSuccessful 根據 status 判斷,是否爲正常的狀態
  • IsRedirect 根據 status 判斷,是否爲跳轉類的狀態
  • IsForbidden 根據 status 判斷,是否爲禁用類的狀態
  • IsNotFound 根據 status 判斷,是否爲找不到資源類的狀態
  • IsClientError 根據 status 判斷,是否爲請求客戶端錯誤的狀態
  • IsServerError 根據 status 判斷,是否爲服務器端錯誤的狀態
相關文章
相關標籤/搜索