最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語(yǔ)言使用HTTP包創(chuàng)建WEB服務(wù)器的方法

 更新時(shí)間:2016年07月27日 16:01:37   作者:軒脈刃  
這篇文章主要介紹了Go語(yǔ)言使用HTTP包創(chuàng)建WEB服務(wù)器的方法,結(jié)合實(shí)例形式分析了Go語(yǔ)言基于HTTP包創(chuàng)建WEB服務(wù)器客戶端與服務(wù)器端的實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Go語(yǔ)言使用HTTP包創(chuàng)建WEB服務(wù)器的方法。分享給大家供大家參考,具體如下:

在Golang中寫(xiě)一個(gè)http web服務(wù)器大致是有兩種方法:

1 使用net包的net.Listen來(lái)對(duì)端口進(jìn)行監(jiān)聽(tīng)

2 使用net/http包

這里是討論如何使用net/http包創(chuàng)建一個(gè)web服務(wù)器

net/http請(qǐng)求提供了HTTP客戶端和服務(wù)端的具體實(shí)現(xiàn)

http客戶端

先看到的是Get,Post,PostForm三個(gè)函數(shù)。這三個(gè)函數(shù)直接實(shí)現(xiàn)了http客戶端

復(fù)制代碼 代碼如下:
import (
    "fmt"
    "net/http"
    "io/ioutil"
)
func main() {
    response,_ := http.Get("http://www.baidu.com")
    defer response.Body.Close()
    body,_ := ioutil.ReadAll(response.Body)
    fmt.Println(string(body))
}

除了使用這三個(gè)函數(shù)來(lái)建立一個(gè)簡(jiǎn)單客戶端,還可以使用:

http.Client和http.NewRequest來(lái)模擬請(qǐng)求

復(fù)制代碼 代碼如下:
package main
import (
    "net/http"
    "io/ioutil"
    "fmt"
)
func main() {
    client := &http.Client{}
    reqest, _ := http.NewRequest("GET", "http://www.baidu.com", nil)
    reqest.Header.Set("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
    reqest.Header.Set("Accept-Charset","GBK,utf-8;q=0.7,*;q=0.3")
    reqest.Header.Set("Accept-Encoding","gzip,deflate,sdch")
    reqest.Header.Set("Accept-Language","zh-CN,zh;q=0.8")
    reqest.Header.Set("Cache-Control","max-age=0")
    reqest.Header.Set("Connection","keep-alive")
    response,_ := client.Do(reqest)
    if response.StatusCode == 200 {
        body, _ := ioutil.ReadAll(response.Body)
        bodystr := string(body);
        fmt.Println(bodystr)
    }
}

如何創(chuàng)建web服務(wù)端?

http包封裝地非常bt,只需要兩行!!:

復(fù)制代碼 代碼如下:
package main
import (
    "net/http"
)
func SayHello(w http.ResponseWriter, req *http.Request) {
    w.Write([]byte("Hello"))
}
func main() {
    http.HandleFunc("/hello", SayHello)
    http.ListenAndServe(":8001", nil)

}


進(jìn)行端口的監(jiān)聽(tīng):http.ListenAndServe(":8001", nil)

注冊(cè)路徑處理函數(shù):http.HandleFunc("/hello", SayHello)

處理函數(shù):func SayHello(w http.ResponseWriter, req *http.Request)

golang服務(wù)器的效率怎樣呢?

看看這個(gè)帖子:

http://groups.google.com/group/golang-nuts/browse_thread/thread/cde2cc6278cefc90

node.js is 45% faster than golang(確實(shí)傷心)

golang服務(wù)端的效率確實(shí)沒(méi)有node.js高,幾乎是它的一半。但話說(shuō)回來(lái),如果一些并發(fā)量不是很大的site,還是可以使用golang做服務(wù)器的。

希望本文所述對(duì)大家Go語(yǔ)言程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • golang實(shí)現(xiàn)unicode轉(zhuǎn)換為字符串string的方法

    golang實(shí)現(xiàn)unicode轉(zhuǎn)換為字符串string的方法

    這篇文章主要介紹了golang實(shí)現(xiàn)unicode轉(zhuǎn)換為字符串string的方法,實(shí)例分析了Go語(yǔ)言編碼轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • Golang 錯(cuò)誤捕獲Panic與Recover的使用

    Golang 錯(cuò)誤捕獲Panic與Recover的使用

    對(duì)于Go語(yǔ)言的錯(cuò)誤是通過(guò)返回值的方式,本文主要介紹了Golang 錯(cuò)誤捕獲Panic與Recover的使用,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Go定時(shí)器cron的使用詳解

    Go定時(shí)器cron的使用詳解

    本篇文章主要介紹了Go定時(shí)器cron的使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 快速掌握Go 語(yǔ)言 HTTP 標(biāo)準(zhǔn)庫(kù)的實(shí)現(xiàn)方法

    快速掌握Go 語(yǔ)言 HTTP 標(biāo)準(zhǔn)庫(kù)的實(shí)現(xiàn)方法

    基于HTTP構(gòu)建的服務(wù)標(biāo)準(zhǔn)模型包括兩個(gè)端,客戶端(Client)和服務(wù)端(Server),這篇文章主要介紹了Go 語(yǔ)言HTTP標(biāo)準(zhǔn)庫(kù)的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2022-07-07
  • Golang設(shè)計(jì)模式之外觀模式講解和代碼示例

    Golang設(shè)計(jì)模式之外觀模式講解和代碼示例

    外觀是一種結(jié)構(gòu)型設(shè)計(jì)模式, 能為復(fù)雜系統(tǒng)、 程序庫(kù)或框架提供一個(gè)簡(jiǎn)單 (但有限) 的接口,這篇文章就給大家詳細(xì)介紹一下Golang的外觀模式,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Go語(yǔ)言使用Timeout Context取消任務(wù)的實(shí)現(xiàn)

    Go語(yǔ)言使用Timeout Context取消任務(wù)的實(shí)現(xiàn)

    本文主要介紹了Go語(yǔ)言使用Timeout Context取消任務(wù)的實(shí)現(xiàn),包括基本的任務(wù)取消和控制HTTP客戶端請(qǐng)求的超時(shí),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Golang環(huán)境變量設(shè)置和查看工具go env詳解

    Golang環(huán)境變量設(shè)置和查看工具go env詳解

    go env 是 Go 工具鏈中的一個(gè)命令,用于設(shè)置和查看當(dāng)前 Golang 環(huán)境的相關(guān)信息,對(duì)于理解、編譯和運(yùn)行 Golang 程序非常有用,本文就給大家簡(jiǎn)單的介紹一下Golang環(huán)境變量設(shè)置和查看工具go env,需要的朋友可以參考下
    2023-07-07
  • Golang使用Gin框架實(shí)現(xiàn)HTTP響應(yīng)格式統(tǒng)一處理

    Golang使用Gin框架實(shí)現(xiàn)HTTP響應(yīng)格式統(tǒng)一處理

    在gin框架中,我們可以定義一個(gè)中間件來(lái)處理統(tǒng)一的HTTP響應(yīng)格式,本文主要為大家介紹了具體是怎么定義實(shí)現(xiàn)這樣的中間件的,感興趣的小伙伴可以了解一下
    2023-07-07
  • golang頻率限制 rate詳解

    golang頻率限制 rate詳解

    這篇文章主要介紹了golang頻率限制 rate詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Go語(yǔ)言部署Kubernetes的實(shí)現(xiàn)示例

    Go語(yǔ)言部署Kubernetes的實(shí)現(xiàn)示例

    本文介紹了將Go應(yīng)用部署到Kubernetes的全過(guò)程,實(shí)現(xiàn)自動(dòng)擴(kuò)展、滾動(dòng)更新、健康檢查、監(jiān)控,并提供了最佳實(shí)踐和完整示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2026-05-05

最新評(píng)論

洪湖市| 固阳县| 改则县| 安阳市| 梓潼县| 剑川县| 绥德县| 石棉县| 桂平市| 奉节县| 沽源县| 扶风县| 江孜县| 赫章县| 嵩明县| 贵港市| 建昌县| 徐州市| 丰镇市| 威宁| 房产| 建水县| 南靖县| 乡宁县| 宜春市| 留坝县| 浮梁县| 江油市| 闻喜县| 兰西县| 尚志市| 绥阳县| 永年县| 舒城县| 大渡口区| 凯里市| 临汾市| 连城县| 行唐县| 武平县| 玉山县|