91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Go語言Http?Server框架實現一個簡單的httpServer

發布時間:2023-04-28 10:59:39 來源:億速云 閱讀:86 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么使用Go語言Http Server框架實現一個簡單的httpServer”,在日常操作中,相信很多人在怎么使用Go語言Http Server框架實現一個簡單的httpServer問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用Go語言Http Server框架實現一個簡單的httpServer”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

實現一個簡單地httpServer

實現一個簡單地httpServer

package main  
import (  
    "fmt"  
    "log"  
    "net/http"  
)  
func home(w http.ResponseWriter, r *http.Request) {  
    fmt.Fprintf(w, "這是主頁")  
}  
func user(w http.ResponseWriter, r *http.Request) {  
    fmt.Fprintf(w, "這是用戶頁面")  
}  
func main() {  
    http.HandleFunc("/", home)  
    http.HandleFunc("/user", user)  
    log.Fatal(http.ListenAndServe(":8080", nil))  
}

此時啟動服務并訪問8080端口,可以看到下面的頁面

怎么使用Go語言Http?Server框架實現一個簡單的httpServer

但是如果我想同時啟動多個server監聽不同的端口該怎么辦? 我們可以從邏輯上抽象出一個Server,可以表示對某個端口進行監聽的實體,這樣必要的時候,我們就可以啟動多個Server來監聽不同的端口

首先我們來寫一個接口

type Server interface{
    //Route 設定一個路由,命中路由會執行handlerFunc的代碼
    Route(pattern string handlerFunc http.HandlerFunc)
    //Start 用于啟動服務
    Start(address string) error
}

基于http庫實現一個結構體

type sdkHttpSetver struct{
    //Name sever的名字,用于標記特定的服務
    Name string
}

實現Server接口

func (s *sdkHttpServer) Route(pattern string,handlerFunc http.HandlerFunc){
    http.HandleFunc(pattern,handlerFunc)
}
func (s *sdkHttpServer) Start(address string) error{
    http.ListenAndServer(address,nil)
}
func NewSdkHttpServer(name string) Server {
    return &sdkHttpServer{
        Name:name,
    }
}

現在我們已經可以同時監聽多個端口了

func main(){
    server := web.NewSdkHttpServer("my-test-server")
    server.Route("/",home)
    server.Route("/user",user)
    server.Start("8080")
}

雖然我們已經對Server進行了抽象,但是在請求處理的過程中仍然存在問題,就比如我們要實現一個用戶注冊的接口

怎么使用Go語言Http?Server框架實現一個簡單的httpServer

到此,關于“怎么使用Go語言Http Server框架實現一個簡單的httpServer”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

渭源县| 临邑县| 城口县| 腾冲县| 冀州市| 常山县| 山西省| 咸阳市| 四会市| 邵武市| 呈贡县| 隆尧县| 息烽县| 吕梁市| 松滋市| 盐边县| 镇赉县| 玛多县| 方山县| 浮梁县| 长沙市| 焦作市| 乳山市| 通河县| 潜山县| 五原县| 山西省| 泽普县| 个旧市| 老河口市| 无为县| 田林县| 宁德市| 开原市| 谢通门县| 陆良县| 通河县| 玉树县| 岢岚县| 彭州市| 区。|