golang中的net/http庫基本使用詳解
更新時間:2024年04月23日 09:59:08 作者:淡墨@~無痕
今天給大家分享golang中的net/http庫基本使用方法,文章開頭給大家詳細介紹了標準庫net/http如何處理一個請求,結合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
關于net/http庫
我們先看看標準庫net/http如何處理一個請求。
import ( "fmt" "log" "net/http" ) var count = 0 func main() { http.HandleFunc("/", handler) http.HandleFunc("/count", counter) log.Fatal(http.ListenAndServe("localhost:8000", nil)) } func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path) fmt.Printf("URL.Path = %q\n", r.URL.Path) } func counter(w http.ResponseWriter, r *http.Request) { count++ fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path) fmt.Println(count) }
代碼塊定義了兩個不同的路由,分別是“/”和“/count”,分別綁定 handler 和 counter, 根據不同的HTTP請求會調用不同的處理函數。
調用“/”路由處理方法得到的結果是:
調用“/count”路由處理方法得到的結果是:
發(fā)送Get請求并獲取響應
import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("https://www.baidu.com") if err != nil { fmt.Println("Error:", err) return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(body)) }
執(zhí)行程序獲取到的結果是:
發(fā)送Post請求并獲取響應
import ( "fmt" "io/ioutil" "net/http" "strings" ) func main() { payload := strings.NewReader("data=example") resp, err := http.Post("https://www.baidu.com", "application/x-www-form-urlencoded", payload) if err != nil { fmt.Println("Error:", err) return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(body)) }
執(zhí)行程序獲取到的結果是:
到此這篇關于golang中的net/http庫基本使用詳解的文章就介紹到這了,更多相關golang net/http庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Go語言中for循環(huán),break和continue的使用
這篇文章主要通過一些示例為大家介紹一下Go語言中for循環(huán)、break和continue的基本語法以及使用,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-06-06