第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在go-chi中啟用gzip壓縮中間件

如何在go-chi中啟用gzip壓縮中間件

Go
長(zhǎng)風(fēng)秋雁 2023-07-17 16:27:18
如何使用 go-chi 框架的 gzip 中間件啟用 gzip 壓縮?嘗試使用此處顯示的示例:https://github.com/go-chi/chi/issues/204但是當(dāng)我檢查curl時(shí),我得到了這個(gè):$ curl -H "Accept-Encoding: gzip" -I http://127.0.0.1:3333HTTP/1.1 405 Method Not AllowedDate: Sat, 31 Aug 2019 19:06:39 GMT我嘗試了代碼“hello world”:package mainimport (    "net/http"    "github.com/go-chi/chi"    "github.com/go-chi/chi/middleware")func main() {    r := chi.NewRouter()    r.Use(middleware.RequestID)    r.Use(middleware.Logger)    //r.Use(middleware.DefaultCompress) //using this produces the same result    r.Use(middleware.Compress(5, "gzip"))    r.Get("/", Hello)    http.ListenAndServe(":3333", r)}func Hello(w http.ResponseWriter, r *http.Request){    w.Header().Set("Content-Type", "text/html") //according to the documentation this must be here to enable gzip    w.Write([]byte("hello world\n"))}但是當(dāng)我嘗試用curl驗(yàn)證時(shí),結(jié)果是一樣的$ curl -H "Accept-Encoding: gzip" -I http://127.0.0.1:3333HTTP/1.1 405 Method Not AllowedDate: Sat, 31 Aug 2019 19:06:39 GMT這是怎么回事?
查看完整描述

3 回答

?
森欄

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊

其他答案現(xiàn)在已經(jīng)過(guò)時(shí)了。我必須自己解決這個(gè)問(wèn)題,所以這是我發(fā)現(xiàn)的。


你的錯(cuò)誤在這里:


r.Use(middleware.Compress(5, "gzip"))

第二個(gè)參數(shù)(“類型”)是指將應(yīng)用壓縮的內(nèi)容類型。例如:"text/html"、"application/json"等


只需添加要壓縮的內(nèi)容類型列表,或完全刪除參數(shù):


func main() {

    r := chi.NewRouter()

    r.Use(middleware.RequestID)

    r.Use(middleware.Logger)

    r.Use(middleware.Compress(5))

    r.Get("/", Hello)

    http.ListenAndServe(":3333", r)

}

這將壓縮middleware.compress中默認(rèn)列表中定義的所有內(nèi)容類型:


var defaultCompressibleContentTypes = []string{

    "text/html",

    "text/css",

    "text/plain",

    "text/javascript",

    "application/javascript",

    "application/x-javascript",

    "application/json",

    "application/atom+xml",

    "application/rss+xml",

    "image/svg+xml",

}

祝你好運(yùn)!


查看完整回答
反對(duì) 回復(fù) 2023-07-17
?
汪汪一只貓

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊

r.Use(middleware.DefaultCompress)現(xiàn)在已被標(biāo)記為DEPRECATED.


要啟用壓縮,您需要?jiǎng)?chuàng)建一個(gè)壓縮器并使用其處理程序。


r := chi.NewRouter()

r.Use(middleware.RequestID)

r.Use(middleware.Logger)


compressor := middleware.NewCompressor(flate.DefaultCompression)

r.Use(compressor.Handler())


r.Get("/", Hello)

http.ListenAndServe(":3333", r)

該flate包必須導(dǎo)入為compress/flate.


查看完整回答
反對(duì) 回復(fù) 2023-07-17
?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

使用注釋middleware.DefaultCompress和正常GET請(qǐng)求。


package main


import (

    "net/http"


    "github.com/go-chi/chi"

    "github.com/go-chi/chi/middleware"

)


func main() {

    r := chi.NewRouter()

    r.Use(middleware.RequestID)

    r.Use(middleware.Logger)

    r.Use(middleware.DefaultCompress)

    r.Get("/", Hello)

    http.ListenAndServe(":3333", r)

}


func Hello(w http.ResponseWriter, r *http.Request) {

    w.Header().Set("Content-Type", "text/html")

    w.Write([]byte("hello world\n"))

}

嘗試使用curl:


$ curl -v http://localhost:3333 --compressed

* Rebuilt URL to: http://localhost:3333/

*   Trying 127.0.0.1...

* TCP_NODELAY set

* Connected to localhost (127.0.0.1) port 3333 (#0)

> GET / HTTP/1.1

> Host: localhost:3333

> User-Agent: curl/7.58.0

> Accept: */*

> Accept-Encoding: deflate, gzip

>

< HTTP/1.1 200 OK

< Content-Encoding: gzip

< Content-Type: text/html

< Date: Sat, 31 Aug 2019 23:37:52 GMT

< Content-Length: 36

<

hello world

* Connection #0 to host localhost left intact

或者HTTPie:


$ http :3333

HTTP/1.1 200 OK

Content-Encoding: gzip

Content-Length: 36

Content-Type: text/html

Date: Sat, 31 Aug 2019 23:38:31 GMT


hello world


查看完整回答
反對(duì) 回復(fù) 2023-07-17
  • 3 回答
  • 0 關(guān)注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)