introduction
http Server實現
- 使用
http.HandleFunc
函數設置web路由,針對用戶輸入的url進行處理- 傳入相對應用戶輸入的url,使用不同的函數進行處理
http.HandleFunc(web路由路徑,處理函數)
http.ListenAndServe()
將tcp編程的的Listen
及Accept
等代表server端函數都封裝了
1 | package main |
http Client
- 客戶端(Client)用於調用服務端(Server)的服務
- 其Get方法預設使用內部已實現的客戶端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main(){
//參數可替換欲請求的網址
res,err := http.Get("http://taroballz.com")
if err !=nil {
fmt.Println("get err:",err)
return
}
//成功Get到後結束時一定要記得關掉
defer res.Body.Close()
//res.Body實現了Reader接口
data,err := ioutil.ReadAll(res.Body)
if err !=nil{
fmt.Println("get data err:",err)
return
}
fmt.Println(string(data))
}
http常見請求
- Get請求:
- 用於請求返回數據(讀)
- data位於url的後面
- url長度有限制
- 沒有包體
- Post請求:
- data位於包體中
- 其提交的data長度不受限制
- 用於更新資源
- Put請求:
- 用於創建資源
- Delete請求:
- 用於刪除資源
- Head請求:
- 請求封包頭
- 通常用於查看服務正不正常,而不返回數據
http Head請求
http.Head(url)
:使用Head請求對應的url- 其Head方法預設使用內部已實現的客戶端
1 | package main |