为了账号安全,请及时绑定邮箱和手机立即绑定

gin相比原生net/http优势

老师同学们好,想请问一下gin相当于封装了原生的net/http,相比原生的net/http有哪些优势,哪些方面给大家带来了方便。谢谢。

正在回答

2 回答

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))

}

```




0 回复 有任何疑惑可以回复我~

反正快就对了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

gin相比原生net/http优势

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信