亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Go語言怎么實現一個Http?Server

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

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

實現一個簡單地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

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

首先我們來寫一個接口

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

實現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

所以我們需要繼續對Context也就是上下文做一下抽象,這里的Context是我們自定義的Context不是go原生的Context

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

向AI問一下細節

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

AI

合水县| 洪湖市| 新乡县| 东乌珠穆沁旗| 平罗县| 彰化市| 南皮县| 太白县| 晴隆县| 满洲里市| 通渭县| 邳州市| 神木县| 溧水县| 贞丰县| 化德县| 中方县| 通海县| 白朗县| 琼结县| 布尔津县| 东光县| 云霄县| 海阳市| 南靖县| 如东县| 永康市| 南通市| 湟中县| 宾阳县| 许昌市| 邢台县| 仁布县| 高淳县| 花莲县| 万盛区| 玛纳斯县| 武鸣县| 洛浦县| 惠州市| 巴楚县|