Go Web編程實戰(zhàn)(9)----創(chuàng)建客戶端

      網(wǎng)友投稿 829 2025-03-31

      目錄

      創(chuàng)建一個客戶端

      Get()請求

      Post()請求

      請求頭設(shè)置

      創(chuàng)建一個客戶端

      在Go語言的net/http包中,還提供了一個被稱為Client的結(jié)構(gòu)體。該結(jié)構(gòu)體提供了Get()、Post()兩個請求函數(shù)。下面,我們來分別使用代碼實現(xiàn)這些請求。

      Get()請求

      首先,我們來看一下Get()請求函數(shù)的定義,以及其內(nèi)部的調(diào)用邏輯:

      func Get(url string) (resp *Response, err error) { return DefaultClient.Get(url) } func (c *Client) Get(url string) (resp *Response, err error) { req, err := NewRequest("GET", url, nil) if err != nil { return nil, err } return c.Do(req) }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      可以發(fā)現(xiàn),其真實調(diào)用的函數(shù)其實是NewRequest(),其實Post請求也是一樣,之需要將NewRequest()函數(shù)的第一個參數(shù)改為“POST”即可。

      下面,我們來實現(xiàn)Get()請求:

      package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("https://blog.csdn.net/liyuanjinglyj") if err != nil { fmt.Println(err) } closer := resp.Body bytes, err := ioutil.ReadAll(closer) fmt.Println(string(bytes)) }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      運行之后,控制臺會打印我的CSDN主頁的HTML文檔內(nèi)容。

      Post()請求

      Post()請求稍微比Get()請求復(fù)雜點,這里我們直接上代碼:

      package main import ( bytes2 "bytes" "fmt" "io/ioutil" "net/http" ) func main() { url := "http://httpbin.org/post" body := "{\"name\",\"liyuanjing\",\"age\",29}" response, err := http.Post(url, "application/x-www-form-urlencoded", bytes2.NewBuffer([]byte(body))) if err != nil { fmt.Println(err) } bytes, err := ioutil.ReadAll(response.Body) fmt.Println(string(bytes)) }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      運行之后,控制臺會返回你傳遞的參數(shù)內(nèi)容,這里就不展示了。

      當(dāng)然,還有PUT與DELETE請求。不過,在實際的應(yīng)用中比較少,這里直接忽略。

      請求頭設(shè)置

      在我們進行各種爬蟲以及獲取網(wǎng)頁各種數(shù)據(jù)時,為了偽裝自己是瀏覽器,常常需要設(shè)置各種類型的請求頭。而Go語言給我們提供Header類型。

      下面,我們來定義一個User-Agent請求頭,因為我們是自己設(shè)置的Header,所以需要直接使用NewRequest()方法。

      package main import ( "fmt" "io/ioutil" "net/http" ) func main() { client := &http.Client{} request, err := http.NewRequest("Get", "https://www.baidu.com/", nil) request.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36") if err != nil { fmt.Println(err) } resp, _ := client.Do(request) closer := resp.Body bytes, err := ioutil.ReadAll(closer) fmt.Println(string(bytes)) defer resp.Body.Close() }

      1

      Go Web編程實戰(zhàn)(9)----創(chuàng)建客戶端

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      Go web前端

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:word無法設(shè)置A3紙張大小(word紙張大小沒有a3怎么辦)
      下一篇:Excel中f4鍵按了沒反應(yīng)怎么辦? Excel中F4鍵沒反應(yīng)的解決辦法
      相關(guān)文章
      亚洲av永久中文无码精品综合| 337p日本欧洲亚洲大胆艺术| 亚洲AV无码一区二区乱子伦| 亚洲国产成人精品女人久久久 | 在线亚洲97se亚洲综合在线 | 国产成人无码综合亚洲日韩| 亚洲综合色在线观看亚洲| 亚洲爆乳精品无码一区二区| 亚洲精品女同中文字幕| 国产亚洲福利在线视频| 在线观看亚洲AV每日更新无码| 亚洲最新在线视频| 久久久久亚洲AV成人无码网站| 亚洲AV中文无码乱人伦下载| 久久久久久亚洲精品| 亚洲AV乱码一区二区三区林ゆな | 在线观看亚洲AV日韩A∨| 亚洲色中文字幕在线播放| 亚洲中文无码永久免| 亚洲中文字幕久久久一区| 亚洲日韩一区精品射精| 亚洲国产精品无码久久九九大片 | 亚洲精品亚洲人成在线观看| 亚洲综合国产精品第一页| 2048亚洲精品国产| 亚洲午夜久久久影院伊人| 亚洲精品你懂的在线观看 | 天天爽亚洲中文字幕| 中文字幕在线日亚洲9| 亚洲国产欧美国产综合一区| 国产精品亚洲精品日韩电影| 亚洲精品麻豆av| 国产成人精品日本亚洲专区61| 久久精品九九亚洲精品天堂| 亚洲国产成人久久综合碰碰动漫3d | 国产成人亚洲精品影院| 亚洲色偷拍另类无码专区| 久久久久亚洲AV片无码| 亚洲午夜精品一区二区公牛电影院 | 亚洲AV日韩精品久久久久久| 亚洲视频在线观看网站|