golang中的net/http庫(kù)基本使用詳解
關(guān)于net/http庫(kù)
我們先看看標(biāo)準(zhǔn)庫(kù)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庫(kù)基本使用詳解的文章就介紹到這了,更多相關(guān)golang net/http庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解Go語(yǔ)言中net/http包的使用
- golang內(nèi)置net/http包的使用詳解
- go標(biāo)準(zhǔn)庫(kù)net/http服務(wù)端的實(shí)現(xiàn)示例
- 一文帶你吃透Golang中net/http標(biāo)準(zhǔn)庫(kù)服務(wù)端
- Go語(yǔ)言使用net/http實(shí)現(xiàn)簡(jiǎn)單登錄驗(yàn)證和文件上傳功能
- 一文詳解Golang中net/http包的實(shí)現(xiàn)原理
- Go 1.22對(duì)net/http包的路由增強(qiáng)功能詳解
- Go net/http的簡(jiǎn)單使用小結(jié)
- Go語(yǔ)言net/http庫(kù)使用詳解
相關(guān)文章
Golang 并發(fā)編程入門Goroutine 簡(jiǎn)介與基礎(chǔ)用法小結(jié)
Goroutine 是 Golang 中的一種輕量級(jí)線程,用于實(shí)現(xiàn)并發(fā)操作,與傳統(tǒng)線程相比,Goroutine 的優(yōu)勢(shì)在于它具有更低的資源消耗和更高的效率,本文介紹Golang 并發(fā)編程入門Goroutine 簡(jiǎn)介與基礎(chǔ)用法小結(jié),感興趣的朋友一起看看吧2024-11-11
golang Gorm與數(shù)據(jù)庫(kù)完整性約束詳解
這篇文章主要介紹了golang Gorm與數(shù)據(jù)庫(kù)完整性約束詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-12-12
Go語(yǔ)言中雙Token登錄系統(tǒng)的思路與實(shí)現(xiàn)詳解
在現(xiàn)代Web應(yīng)用中,身份認(rèn)證是保障系統(tǒng)安全的重要環(huán)節(jié),本文將介紹如何使用Go語(yǔ)言實(shí)現(xiàn)雙Token登錄系統(tǒng),文中的示例代碼講解詳細(xì),需要的可以了解下2025-07-07
一文搞懂Golang文件操作增刪改查功能(基礎(chǔ)篇)
這篇文章主要介紹了一文搞懂Golang文件操作增刪改查功能(基礎(chǔ)篇),Golang 可以認(rèn)為是服務(wù)器開發(fā)語(yǔ)言發(fā)展的趨勢(shì)之一,特別是在流媒體服務(wù)器開發(fā)中,已經(jīng)占有一席之地,今天我們不聊特別深?yuàn)W的機(jī)制和內(nèi)容,就來(lái)聊一聊 Golang 對(duì)于文件的基本操作2021-04-04
詳解Golang?ProtoBuf的基本語(yǔ)法總結(jié)
最近項(xiàng)目是采用微服務(wù)架構(gòu)開發(fā)的,各服務(wù)之間通過gPRC調(diào)用,基于ProtoBuf序列化協(xié)議進(jìn)行數(shù)據(jù)通信,因此接觸學(xué)習(xí)了Protobuf,本文會(huì)對(duì)Protobuf的語(yǔ)法做下總結(jié),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助2022-10-10
Golang map如何生成有序的json數(shù)據(jù)詳解
最近在學(xué)習(xí)Golang,發(fā)現(xiàn)了一個(gè)問題,覺著有必要給大家總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于Golang map如何生成有序json數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面來(lái)一起看看吧。2017-07-07
Golang中Context.WithCancel 的實(shí)戰(zhàn)指南
本文介紹了Go語(yǔ)言中context包的核心用法,重點(diǎn)講解了context.Background()和context.WithCancel()的使用場(chǎng)景,具有一定的參考價(jià)值,感興趣的可以了解一下2025-11-11
Golang中正則表達(dá)式語(yǔ)法及相關(guān)示例
正則表達(dá)式是一種用于匹配和操作文本的強(qiáng)大工具,它使用特殊的字符和語(yǔ)法來(lái)定義模式,下面這篇文章主要給大家介紹了關(guān)于Golang中正則表達(dá)式語(yǔ)法及相關(guān)示例的相關(guān)資料,需要的朋友可以參考下2024-05-05

