針對 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 判斷,是否爲服務器端錯誤的狀態