Golang
跟web有关的不外乎还有curl
什麽是cURL?
cURL是一个开源专案,主要的产品是curl(命令列工具)和libcurl(C语言的API库),两者功能均是:基於网路协定,对指定URL进行网路传输。 来自wiki的解释。
那在golang上,我们该如何实现cURL呢?废话不多说,直接上个程序码来看看
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
response, err := http.Get("http://www.google.com")
if err != nil {
panic(err)
}
defer response.Body.Close()
body, err := ioutil.ReadAll(response.Body)
fmt.Println(string(body))
}
ioutil.ReadAll是io/ioutil这个package所支援的东西,大致常看到的有ioutil.ReadAll()、ioutil.ReadFile、ioutil.TempDir()、WriteFile()…等。
那ioutil.ReadAll()是什麽,如果使用vscode的朋友可以点击function过去看看原始码的部分,他是调用了readAll,将内容一直读取,直到EOF为止。
要注意的是要记得加上关闭唷(Body.Close())
如果要改成post 可以试着修改其中的
response, err := http.Post(
"http://localhost/index.php",
"application/x-www-form-urlencoded",
strings.NewReader("name=tom &tel=99"),
)
那如果我们需要header加点料的话,则可以使用Header.Set 或者 Header.Add
如果我们需要拿http status code或者header 则可以改成使用
fmt.Println(response.StatusCode)
fmt.Println(response.Header)
参考资料
https://pkg.go.dev/io/ioutil
<<: 【Day 04】- 今天来把 Module 藏起来(基於 PEB 断链,隐藏 DLL 的方法)
说明 关於 FHIR 服务器 FHIR 有非常多服务器端的实作,这边使用的是 HAPI FHIR。这...
前面我们聊到了如何存取资料库,以及遇到 N+1 问题时该如何发现以及解决问题。 今天我们来谈谈 Ex...
第 21 天 ! 我们来了解 react 的 资料流(data flow), 在我们之前做的To D...
GitHub Repo https://github.com/b2etw/Spring-Kotlin...
回顾30天 平常都是这样的我 可是想不到,为了这30天,每天都只能 阿爸阿母不经过来关心说:阿~女儿...