Beego獲取http請求內容詳細介紹

2021-09-03 07:52:51 字數 2008 閱讀 2516

beego是乙個使用 golang 來設計的快速構建並開發 go 應用程式的開源http框架,可以快速開發api、web、後端服務等各種應用,功能支援restful,mvc模型;含有智慧型路由,內建強大模組,採用了 go 原生的 http 包來處理請求;goroutine 的併發效率足以應付大流量的 web 應用和 api 應用等等,簡單易用,功能強大。

beego已經為使用者建立了諸如routers(路由),views(檢視),controller(控制器),models(資料模型),static(靜態檔案),tests(測試用例)等資料夾和相應的.go檔案了。modoel,views和controller,依然是構建mvc模式的核心。

程式入口:main.go

控制器controllers:根據路由分發的使用者請求, controller會進行業務邏輯處理並返回響應資訊。

本文主要介紹beego框架獲取http請求的一些介紹及注意事項。

經常需要獲取使用者傳遞的資料,包括 get、post 等方式的請求,beego 裡面會自動解析這些資料,你可以通過如下方式獲取資料:

getstring(key string) string

getstrings(key string) string

getint(key string) (int64, error)

getbool(key string) (bool, error)

getfloat(key string) (float64, error)

使用使用者資訊驗證例子分別採用get、post方法舉例如下:

在models中定義返回結構,其中code 含義 1 成功 0 失敗

type generalresp struct  `json:"data"`

error string `json:"error"`

}

使用get方法實現使用者資訊驗證介面

func (this *maincontroller) login()      

}else

}this.servejson()

}

如果你需要的資料可能是其他型別的,例如是 int 型別而不是 int64,那麼你需要這樣處理:

func (this *maincontroller) get()
再使用post方法完成使用者資訊驗證介面

在models中定義userinfo結構

type userinfo struct
post方法實現使用者資訊驗證介面

func (this *maincontroller) login()

this.servejson()

return

}ret := tools.loginmsgcheck(userinfo.username,userinfo.password)//登入資訊驗證

if ret

}else

}this.servejson()

}

在 api 的開發中,經常會用到 json 或 xml 來作為資料互動的格式,如何在 beego 中獲取 request body 裡的 json 或 xml 的資料呢?

1、在配置檔案裡設定 copyrequestbody = true

2、在 controller 中

func (this *obejctcontroller) post() "

this.servejson()

}

配置檔案中一定要加copyrequestbody = true

否則會列印錯誤資訊:syntaxerror: unexpected end of json input

如有不對歡迎指正,相互學習,共同進步。

php傳送http請求,獲取網頁內容方法

php傳送http請求,獲取網頁內容方法 curl file get contents fopen 區別 1.相較於file get contents fopen curl支援更多功能 curl支援更多協議,目前支援http https ftp gopher telnet dict file ida...

Beego獲取Get請求的URL引數

beego獲取get請求的url引數 這段時間接觸到golang的beego,於是就研究了一波,順帶寫一些後端。golang的beego框架,可以說是參照了一下python的tornado後端框架。這一點對於博主來說,真是爽到爆了。因為博主第乙個接觸到的框架就是龍捲風 這裡,我們先來說一下,在測試乙...

beego請求例子

main.go匯入 routers目錄 routers router.go初始化controller 新建 routers資料夾,裡面新建router.go 包含logincontroller typelogincontrollerstruct router login get func c log...