1. 程式人生 > >golang 如何重寫http 請求處理

golang 如何重寫http 請求處理

在某些特殊的情況。golang 內建包的 http 處理滿足不了我們的需求。那麼我們就需要自己重寫一個對應的請求

那麼應該怎麼去寫這個東西。

我們需要重寫golang net/http 包的 Handler interface

很簡單的一個介面

type Handler interface {
	ServeHTTP(ResponseWriter, *Request)
}

可以看出。我們這邊只需要 實現這個 ServeHTTP 方法就好了

測試程式碼是這樣的

package main

import (
	"log"
	"net/http"
)

type HttpTest struct {
}

func main() {

	//監聽8080 埠。重寫Handler 介面 請求處理方法
	log.Fatal(http.ListenAndServe(":8080", HttpTest{}))
}

func (this HttpTest) ServeHTTP(w http.ResponseWriter, req *http.Request) {
	//獲取訪問的url
	log.Println(req.URL.String())
}

寫完直接啟動就可以了。

我這邊沒有加什麼很 厲害的功能 只是輸出對應的 訪問url