golang中的net/http庫基本使用詳解
關(guān)于net/http庫
我們先看看標(biāo)準(zhǔn)庫net/http如何處理一個(gè)請(qǐng)求。
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)
}代碼塊定義了兩個(gè)不同的路由,分別是“/”和“/count”,分別綁定 handler 和 counter, 根據(jù)不同的HTTP請(qǐng)求會(huì)調(diào)用不同的處理函數(shù)。
調(diào)用“/”路由處理方法得到的結(jié)果是:

調(diào)用“/count”路由處理方法得到的結(jié)果是:

發(fā)送Get請(qǐng)求并獲取響應(yīng)
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í)行程序獲取到的結(jié)果是:

發(fā)送Post請(qǐng)求并獲取響應(yīng)
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í)行程序獲取到的結(jié)果是:

到此這篇關(guān)于golang中的net/http庫基本使用詳解的文章就介紹到這了,更多相關(guān)golang net/http庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang結(jié)構(gòu)體指針的實(shí)現(xiàn)
這篇文章主要介紹了golang結(jié)構(gòu)體指針的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-06-06
go語言搬磚之go jmespath實(shí)現(xiàn)查詢json數(shù)據(jù)
這篇文章主要為大家介紹了go語言搬磚之go jmespath實(shí)現(xiàn)查詢json數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Go中的new()和make()函數(shù)區(qū)別及底層原理詳解
這篇文章主要為大家介紹了Go中的new()和make()函數(shù)區(qū)別及底層原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
詳解如何在golang項(xiàng)目開發(fā)中創(chuàng)建自己的Module

