今天來看三件事:
1、beego的兩個重要引數:
beego.bconfig.copyrequestbody:
是否允許在http請求時,返回原始請求體資料位元組,預設為false(get or head or 上傳檔案請求除外)。
beego.bconfig.copyrequestbody = false
beego.bconfig.recoverpanic:
是否異常恢復,預設值為 true,即當應用出現異常的情況,通過 recover 恢復回來,而不會導致應用異常退出。
beego.bconfig.recoverpanic = true
在這裡有一點需要說明,利用beego搭建的web工程最好用bee工具執行,因為在beego1.6.1版本,用go run執行,程式執行過程**現了
**slice bounds out of range:**切片下標越界;
或者都不會列印日誌,加大問題定位難度。
但用bee工具啟動時載入正常:
經查閱資料,發現這是beego1.6.1版本的bug,issue見:
有興趣可以看看各位大佬激烈的討論。
2、beego引數接收:
第一種:路徑引數 (path parameters):
就是用 url 路徑的一部分來作為我們獲取引數值的一種方式。
如:
beego.
router
("/:ak/:sk"
,&sayhellocontroller,
"post:sayhello")或者
beego.
router
("/?:ak/?:sk"
,&sayhellocontroller,
"get:sayhello"
)
接收方法如下:
方法一:
fmt.
println
("---ak is --- "
, this.
getstring
(":ak"))
fmt.
println
("---sk is --- "
, this.
getstring
(":sk"))
方法二:
sk1 := this.ctx.input.
param
(":sk"
)ak1 := this.ctx.input.
param
(":ak"
)
第二種:查詢引數 (query string)在 beego 中獲取查詢引數是十分方便的, 使用 beego.controller.getstring() 便可以方便的獲取查詢引數(這個方法同樣可以獲取 request body 中的以 post 方式傳送的表單引數)。
在url中?之後,以&分隔的鍵值對。從某種意義上將這些鍵值對與表單是起到相同作用的,只是乙個放在url中,乙個放在body中(當然表單get方式提交也是放到url中)它們都可以用不帶 : 的方式獲取。
方法一:
//獲取?後面&分隔的引數
name2 := this.
input()
["name"
]age2 := this.
input()
["age"
]fmt.
printf
("name2:%s age2:%s\n"
, name2, age2)
方法二:
//獲取?後面的引數 key不能加:
name3 := this.
getstring
("name"
)age3 := this.
getstring
("age"
)fmt.
printf
("name3:%s age3:%s\n"
, name3, age3)
第三種:web 表單 (web form):可以利用 beego.controller.getstring() 獲取;如果是post的請求方式,也可以定義和表單對應的struct,然後將this.ctx.input.requestbody轉換為結構體物件:
type mystruct struct
mystruct := mystruct
json.
unmarshal
(this.ctx.input.requestbody,
&mystruct)
3、執行curl命令:執行curl命令調介面時,引數傳遞需要注意:
如:
curl -x get -v
如果直接傳送,& 會被系統解析(空格等字元也會被系統解析)
需對特殊字元進行轉義。上面的命令可以修改為:
curl -x get -v
在 & 前加轉義符 \ ( 空格可用+或者%20取代 )
或者給 url 加雙引號,如:
curl -x get "" -v
注意:我測試過,在windows上用%26代替&,都會導致name取到jingge&age=21整體,而age取不到值,用 \ 轉義會導致name取到jingge\,而age取不到值,如下圖:
%26代替&:
\ 轉義&:
唯一可行的是在url上加雙引號;
在linux上用%26也會導致name取到jingge&age=21整體,而age取不到值,但是用 \ 轉義和加雙引號都可以。
三件事不能等!
人的一生,有三件事情不能等 第一是 貧窮 貧窮不能等,因為一但時間久了,你將習慣貧窮,到時不但無法突破自我,甚至會抹殺了自己的夢想,而庸庸碌碌的過一輩子.第二是 夢想 夢想不能等,因為人生不同的階段,會有不同的歷練和想法,試想乙個問題 如果你2歲時的夢想,在60歲的時候才得以實現,那會是什麼樣的乙個...
每天專注三件事
中表達過自己對使用to do列表來管理待辦事項的幻滅。今天,讓我們來嘗試簡單一點的做法 一次小小的試驗。你用什麼來跟蹤你需要做的事情呢?把它舉起來,讓我看得見。照我說的做吧。我是說真的!還不行,還不行,你得再靠近一點,靠近這裡的顯示屏。讓我來看看。給我點時間,讓我好好看一看。現在,想象一下 我一巴掌...
隨筆 今日三件事
隨便,今日三件事。沒有通過審核,心裡難免有些失落。註冊網域名稱的時候忘記考慮到這個問題,或者說直接沒有考慮到api的申請吧,誰知道會開放api呢?還這麼容易申請!第2件事,某淘網,基本功能已經完成,也已經開始發布,剩下的就是其他細節及功能的調整。今天,寫了兩個xml,乙個是sitemap,乙個是rs...