課程
/前端開發
/HTML/CSS
/Gin入門實戰
老師同學們好,想請問一下gin相當于封裝了原生的net/http,相比原生的net/http有哪些優勢,哪些方面給大家帶來了方便。謝謝。
2020-02-20
源自:Gin入門實戰 5-1
正在回答
http庫只是基本的架子,還缺少很多問題。Gin進一步封裝,讓我們能更快使用——比如,http中的http.Request
.Body只會讀一次,第二次是讀不到的,然后你使用的話需要自己保存;但是用Gin后,它會幫你做好保存讓你直接使用,這樣更加符合開發的邏輯??傊?,Gin就是彌補了原生http庫的不足,并且這些補充都是適用了的最佳實踐方式。
```go
func readBodyOnce(w http.ResponseWriter, r *http.Request) ?{
? ? body, err := io.ReadAll(r.Body)
? ? if err != nil {
? ? ? ? fmt.Fprintf(w, "read body failed: %v", err)
? ? ? ? // 記住要返回,不然就還會執行后面的代碼
? ? ? ? return
? ? }
? ? // 類型轉換,將 []byte 轉換為 string
? ? fmt.Fprintf(w, "read the data: %s \n", string(body))
? ? // 嘗試再次讀取,啥也讀不到,但是也不會報錯
? ? body, err = io.ReadAll(r.Body)
? ? ? ? // 不會進來這里
? ? ? ? fmt.Fprintf(w, "read the data one more time got error: %v", err)
? ? fmt.Fprintf(w, "read the data one more time: [%s] and read data length %d \n", string(body), len(body))
}
```
反正快就對了
舉報
會基礎就能上手golang web教程-Gin
1 回答1.1節Gin的優勢中關于總內存和平均內存
1 回答gin框架在window上如何安裝
1 回答 gin struct tag 中的 time_format:"2006-01-02" 無效,
1 回答gin是v1.5.0版本會有兼容問題導致驗證器注冊失敗
1 回答你能出一個詳細的實戰基于gin的項目嗎,要有代碼的
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2021-12-06
http庫只是基本的架子,還缺少很多問題。Gin進一步封裝,讓我們能更快使用——比如,http中的http.Request
.Body只會讀一次,第二次是讀不到的,然后你使用的話需要自己保存;但是用Gin后,它會幫你做好保存讓你直接使用,這樣更加符合開發的邏輯??傊?,Gin就是彌補了原生http庫的不足,并且這些補充都是適用了的最佳實踐方式。
```go
func readBodyOnce(w http.ResponseWriter, r *http.Request) ?{
? ? body, err := io.ReadAll(r.Body)
? ? if err != nil {
? ? ? ? fmt.Fprintf(w, "read body failed: %v", err)
? ? ? ? // 記住要返回,不然就還會執行后面的代碼
? ? ? ? return
? ? }
? ? // 類型轉換,將 []byte 轉換為 string
? ? fmt.Fprintf(w, "read the data: %s \n", string(body))
? ? // 嘗試再次讀取,啥也讀不到,但是也不會報錯
? ? body, err = io.ReadAll(r.Body)
? ? if err != nil {
? ? ? ? // 不會進來這里
? ? ? ? fmt.Fprintf(w, "read the data one more time got error: %v", err)
? ? ? ? return
? ? }
? ? fmt.Fprintf(w, "read the data one more time: [%s] and read data length %d \n", string(body), len(body))
}
```
2021-03-11
反正快就對了