今天要來介紹 Go 語言裡的網路操作,這邊會以介紹 net/http 這個套件為主,並且介紹什麼是 HttpClient 和 HttpServer。
所謂服務端,即負責提供網頁的電腦,由程式語言建構出來,並且通過 HTTP 傳輸,
package main
import (
"fmt"
"net/http"
)
func ping(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, "pong\n")
}
func main() {
http.HandleFunc("/ping", ping)
http.ListenAndServe(":8787", nil)
}
我們這裡架設一個很簡易的 Server,在執行程式碼後,你可開啟瀏覽器,並輸入 http://127.0.0.1:5000/ping ,即可以連到自己的 Server,內容會是 pong。
HttpClient 類別執行個體,是做為工作階段使用以傳送 HTTP 要求, 實現 HTTP 和 HTTPS 協議客戶端的類,而HttpClient 提供了八種方法,而我們比較常用的為 GET/POST/DELETE/PUT,今天我們以 GET 來示範取得網頁內容。
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
resp, err := http.Get("https://ithelp.ithome.com.tw/articles/10261743")
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response status:", resp.Status)
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}
這麼一來,你就可以取得該網頁的內容。
今天介紹 Go 語言的 net/http 包,用來處理一些網路遭作為主的套件,這樣一來,你可以用 Go 語言來寫一個自己很簡易的 Server。謝謝今天的閱讀,希望對你有幫助!