溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

beego中context的上下文模塊是什么

發(fā)布時(shí)間:2021-10-20 09:26:49 來源:億速云 閱讀:232 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)beego中context的上下文模塊是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

針對(duì)  HTTP  請(qǐng)求中,request (Input)和 response (Output)的進(jìn)一步封裝。context 對(duì)象是對(duì) Input 和 Output 的封裝。

Input 對(duì)象

具體方法如下:

  • Protocol 獲取用戶請(qǐng)求的協(xié)議,例如 HTTP/1.0

  • Uri 用戶請(qǐng)求的 RequestURI,例如 /hi?id=1001

  • Url 請(qǐng)求的 URL 地址,例如 /hi

  • Site 請(qǐng)求的站點(diǎn)地址,scheme+doamin 的組合,例如 http://beego.me

  • Scheme 請(qǐng)求的 scheme,例如 "http" 或者 "https"

  • Domain 請(qǐng)求的域名,例如 beego.me

  • Host 請(qǐng)求的域名,和 domain 一樣

  • Method 請(qǐng)求的方法,標(biāo)準(zhǔn)的 HTTP 請(qǐng)求方法法,例如 GET 、 POST 等

  • Is 判斷是否是某一個(gè)方法,例如 Is("GET") 返回 true

  • IsAjax 判斷是否是 AJAX 請(qǐng)求,如果是返回 true,不是返回 false

  • IsSecure 判斷當(dāng)前請(qǐng)求是否 HTTPS 請(qǐng)求,是返回 true,否返回 false

  • IsWebsocket 判斷當(dāng)前請(qǐng)求是否 Websocket 請(qǐng)求,如果是返回 true,否返回 false

  • IsUpload 判斷當(dāng)前請(qǐng)求是否有文件上傳,有返回 true,否返回 false

  • IP 返回請(qǐng)求用戶的 IP,如果用戶通過代理,一層一層剝離獲取真實(shí)的 IP

  • Proxy 返回用戶代理請(qǐng)求的所有 IP

  • Refer 返回請(qǐng)求的 refer 信息

  • SubDomains 返回請(qǐng)求域名的根域名,例如請(qǐng)求是 blog.beego.me ,那么調(diào)用該函數(shù)返回 beego.me

  • Port 返回請(qǐng)求的端口,例如返回 8080

  • UserAgent 返回請(qǐng)求的 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 在路由設(shè)置的時(shí)候可以設(shè)置參數(shù),這個(gè)是用來獲取那些參數(shù)的,例如Param(":id") ,返回12

  • Query 該函數(shù)返回 Get 請(qǐng)求和 Post 請(qǐng)求中的所有數(shù)據(jù),和 PHP 中$_REQUEST 類似

  • Header 返回相應(yīng)的 header 信息,例如 Header("Accept-Language") ,就返回請(qǐng)求頭中對(duì)應(yīng)的信息 zh-CN,zh;q=0.8,en;q=0.6

  • Cookie 返回請(qǐng)求中的 cookie 數(shù)據(jù),例如 Cookie("username") ,就可以獲取請(qǐng)求頭中攜帶的 cookie 信息中 username 對(duì)應(yīng)的值

  • Session session 是用戶可以初始化的信息,默認(rèn)采?用了 beego 的 session 模塊中的 Session 對(duì)象,用來獲取存儲(chǔ)在服務(wù)器端中的數(shù)據(jù)。

  • Body 返回請(qǐng)求 Body 中數(shù)據(jù),例如 API 應(yīng)用中,很多用戶直接發(fā)送 json 數(shù)據(jù)包,那么通過 Query 這種函數(shù)無法獲取數(shù)據(jù),就必須通過該函數(shù)獲取數(shù)據(jù)。該函數(shù)已經(jīng)beego1.5版本之后刪除,目前可以通過RequestBody獲取數(shù)據(jù)。

  • GetData 用來獲取 Input 中 Data 中的數(shù)據(jù)

  • SetData 用來設(shè)置 Input 中 Data 的值,上面 GetData 和這個(gè)函數(shù)都是用來方便用戶在 Filter 中傳遞數(shù)據(jù)到 Controller 中來執(zhí)行

Output 對(duì)象

Output 是針對(duì) Response 的封裝,里面提供了很多方便的用法:

  • Header 設(shè)置輸出的 header 信息,例如 Header("Server","beego")

  • Body 設(shè)置輸出的內(nèi)容信息,例如 Body([]byte("astaxie"))

  • Cookie 設(shè)置輸出的 cookie 信息,例如Cookie("sessionID","beegoSessionID")

  • Json 把 Data 格式化為 Json,然后調(diào)用 Body 輸出數(shù)據(jù)

  • Jsonp 把 Data 格式化為 Jsonp,然后調(diào)用 Body 輸出數(shù)據(jù)

  • Xml 把 Data 格式化為 Xml,然后調(diào)用 Body 輸出數(shù)據(jù)

  • Download 把 file 路徑傳遞進(jìn)來,然后輸出文件給用戶

  • ContentType 設(shè)置輸出的 ContentType

  • SetStatus 設(shè)置輸出的 status

  • Session 設(shè)置在服務(wù)器端保存的值,例如 Session("username","astaxie") ,這樣用戶就可以在下次使用的時(shí)候讀取

  • IsCachable 根據(jù) status 判斷,是否為緩存類的狀態(tài)

  • IsEmpty 根據(jù) status 判斷,是否為輸出內(nèi)容為空的狀態(tài)

  • IsOk 根據(jù) status 判斷,是否為 200 的狀態(tài)

  • IsSuccessful 根據(jù) status 判斷,是否為正常的狀態(tài)

  • IsRedirect 根據(jù) status 判斷,是否為跳轉(zhuǎn)類的狀態(tài)

  • IsForbidden 根據(jù) status 判斷,是否為禁用類的狀態(tài)

  • IsNotFound 根據(jù) status 判斷,是否為找不到資源類的狀態(tài)

  • IsClientError 根據(jù) status 判斷,是否為請(qǐng)求客戶端錯(cuò)誤的狀態(tài)

  • IsServerError 根據(jù) status 判斷,是否為服務(wù)器端錯(cuò)誤的狀態(tài)

關(guān)于beego中context的上下文模塊是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI