在Go語言中,可以通過使用標(biāo)準(zhǔn)庫中的"net/http"包來實現(xiàn)HTTP服務(wù)器和客戶端。
下面是一個簡單的HTTP服務(wù)器示例:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
在上面的示例中,我們定義了一個handler函數(shù)來處理HTTP請求,并通過http.HandleFunc函數(shù)將其注冊到根路徑"/"上。然后,調(diào)用http.ListenAndServe函數(shù)來啟動HTTP服務(wù)器,并監(jiān)聽端口8080。
接下來是一個簡單的HTTP客戶端示例:
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
resp, err := http.Get("http://localhost:8080")
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))
}
在上面的示例中,我們通過http.Get函數(shù)向"http://localhost:8080"發(fā)起GET請求,并讀取響應(yīng)體內(nèi)容。然后打印響應(yīng)的內(nèi)容。
需要注意的是,在實際開發(fā)中,我們通常會對HTTP請求和響應(yīng)進行更多的處理,例如設(shè)置請求頭、處理響應(yīng)狀態(tài)碼、處理錯誤等。Go語言的"net/http"包提供了豐富的功能和接口,可以滿足各種HTTP服務(wù)器和客戶端的開發(fā)需求。