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

溫馨提示×

溫馨提示×

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

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

怎么使用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

丁青县| 台北县| 丹阳市| 萍乡市| 封开县| 九龙城区| 彭阳县| 托里县| 昆明市| 当阳市| 启东市| 温泉县| 吉隆县| 天长市| 黎平县| 东宁县| 醴陵市| 云龙县| 兴安盟| 建阳市| 留坝县| 楚雄市| 兰州市| 抚松县| 建德市| 凤台县| 永嘉县| 双鸭山市| 开封县| 资溪县| 厦门市| 文成县| 阜宁县| 屏东市| 湘潭县| 宁德市| 英吉沙县| 石阡县| 太仆寺旗| 五家渠市| 璧山县|