欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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ù)來建立一個(gè)簡單客戶端,還可以使用:

http.Client和http.NewRequest來模擬請(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)聽: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í)沒有node.js高,幾乎是它的一半。但話說回來,如果一些并發(fā)量不是很大的site,還是可以使用golang做服務(wù)器的。

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

相關(guān)文章

  • Go 互斥鎖和讀寫互斥鎖的實(shí)現(xiàn)

    Go 互斥鎖和讀寫互斥鎖的實(shí)現(xiàn)

    本文主要介紹了Go 互斥鎖和讀寫互斥鎖的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • golang?gorm實(shí)現(xiàn)get請(qǐng)求查詢案例測試

    golang?gorm實(shí)現(xiàn)get請(qǐng)求查詢案例測試

    這篇文章主要為大家介紹了golang?gorm實(shí)現(xiàn)get請(qǐng)求查詢案例測試,
    2022-04-04
  • 一文詳解Golang?定時(shí)任務(wù)庫?gron?設(shè)計(jì)和原理

    一文詳解Golang?定時(shí)任務(wù)庫?gron?設(shè)計(jì)和原理

    這篇文章主要介紹了一文詳解Golang?定時(shí)任務(wù)庫?gron?設(shè)計(jì)和原理,gron是一個(gè)比較小巧、靈活的定時(shí)任務(wù)庫,可以執(zhí)行定時(shí)的、周期性的任務(wù)。gron提供簡潔的、并發(fā)安全的接口
    2022-08-08
  • go語言base64用法實(shí)例

    go語言base64用法實(shí)例

    這篇文章主要介紹了go語言base64用法,實(shí)例分析了Go語言base64編碼的實(shí)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • goland?-sync/atomic原子操作小結(jié)

    goland?-sync/atomic原子操作小結(jié)

    這篇文章主要介紹了goland?-sync/atomic原子操作,原子操作能夠保證執(zhí)行期間是連續(xù)且不會(huì)被中斷(變量不會(huì)被其他修改,mutex可能存在被其他修改的情況),本文給大家介紹的非常詳細(xì),需要的朋友參考下
    2022-08-08
  • 如何利用Golang寫出高并發(fā)代碼詳解

    如何利用Golang寫出高并發(fā)代碼詳解

    今天領(lǐng)導(dǎo)問起為什么用Golang,同事回答語法簡單,語言新,支持高并發(fā)。那高并發(fā)到底如何實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何利用Golang寫出高并發(fā)代碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • go語言實(shí)現(xiàn)文件分割的方法

    go語言實(shí)現(xiàn)文件分割的方法

    這篇文章主要介紹了go語言實(shí)現(xiàn)文件分割的方法,實(shí)例分析了Go語言操作文件的技巧,需要的朋友可以參考下
    2015-03-03
  • Go語言實(shí)現(xiàn)JSON解析的神器詳解

    Go語言實(shí)現(xiàn)JSON解析的神器詳解

    php轉(zhuǎn)go是大趨勢,越來越多公司的php服務(wù)都在用go進(jìn)行重構(gòu),重構(gòu)過程中,會(huì)發(fā)現(xiàn)php的json解析操作是真的香。本文和大家分享了一個(gè)Go語言實(shí)現(xiàn)JSON解析的神器,希望對(duì)大家有所幫助
    2023-01-01
  • Go語言Telnet回音服務(wù)器的實(shí)現(xiàn)

    Go語言Telnet回音服務(wù)器的實(shí)現(xiàn)

    這篇文章主要介紹了Go語言Telnet回音服務(wù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Go Plugins插件的實(shí)現(xiàn)方式

    Go Plugins插件的實(shí)現(xiàn)方式

    目前 Plugins 僅在 Linux、FreeBSD 和 macOS 上受支持,且只支持 golang 調(diào)用,今天通過本文給大家介紹Go Plugins插件的實(shí)現(xiàn)方式,感興趣的朋友一起看看吧
    2021-08-08

最新評(píng)論