Day22-Go net/http

前言

今天要来介绍 Go 语言里的网路操作,这边会以介绍 net/http 这个套件为主,并且介绍什麽是 HttpClient 和 HttpServer。

HTTP Server

所谓服务端,即负责提供网页的电脑,由程序语言建构出来,并且通过 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。

HTTP Client

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。谢谢今天的阅读,希望对你有帮助!


<<:  「认知」是你观望世界的窗,不时擦拭,光线才能穿透。

>>:  Day.22 SQL应用 - 表与表之间的连结 (JOIN)

Day 25 埠映射与记忆体映射

输出与输入设备是在嵌入式系统里面,占有一个很重要的位置,所有的输入输出系统都必须透过设备控制暂存器,...

Day08 iPhone捷径-分享

Hello 大家, 本周上班的第二天, 也是倒数第二天XD, 到中午就想ㄏㄚˇ班... 今天来说捷径...

[Day10] Hold Shift to Check Multiple Checkboxes

[Day10] Hold Shift to Check Multiple Checkboxes ch...

Day 7 | 3ds Max转档至unity要点Part1

在开发游戏的过程中,美术需要把做好的档案交给程序,那麽也一定需要固定的规范,因此分享3ds max汇...

[常见的自然语言处理技术] 文本相似度(III): Word2vec带你深入word embeddings

前言 继续来讨论语意相似度,今天我们将深入探讨如何实现 word embedding 。也就是说,我...