• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Go语言使用HTTP包创建WEB服务器的方法

    本文实例讲述了Go语言使用HTTP包创建WEB服务器的方法。分享给大家供大家参考,具体如下:

    在Golang中写一个http web服务器大致是有两种方法:

    1 使用net包的net.Listen来对端口进行监听

    2 使用net/http包

    这里是讨论如何使用net/http包创建一个web服务器

    net/http请求提供了HTTP客户端和服务端的具体实现

    http客户端

    先看到的是Get,Post,PostForm三个函数。这三个函数直接实现了http客户端

    复制代码 代码如下:
    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))
    }

    除了使用这三个函数来建立一个简单客户端,还可以使用:

    http.Client和http.NewRequest来模拟请求

    复制代码 代码如下:
    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)
        }
    }

    如何创建web服务端?

    http包封装地非常bt,只需要两行!!:

    复制代码 代码如下:
    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)

    }


    进行端口的监听:http.ListenAndServe(":8001", nil)

    注册路径处理函数:http.HandleFunc("/hello", SayHello)

    处理函数:func SayHello(w http.ResponseWriter, req *http.Request)

    golang服务器的效率怎样呢?

    看看这个帖子:

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

    node.js is 45% faster than golang(确实伤心)

    golang服务端的效率确实没有node.js高,几乎是它的一半。但话说回来,如果一些并发量不是很大的site,还是可以使用golang做服务器的。

    希望本文所述对大家Go语言程序设计有所帮助。

    您可能感兴趣的文章:
    • Go语言服务器开发实现最简单HTTP的GET与POST接口
    • 利用Go语言搭建WebSocket服务端方法示例
    • 利用Go语言初步搭建一个web应用的教程
    • go语言实现通过FTP库自动上传web日志
    • Go语言实现的web爬虫实例
    • Go语言实现简单Web服务器的方法
    • Go语言实现简单的一个静态WEB服务器
    • Go语言实现的一个简单Web服务器
    • 解决Golang在Web开发时前端莫名出现的空白换行
    • golang基于websocket实现的简易聊天室程序
    • Go语言Web编程实现Get和Post请求发送与解析的方法详解
    上一篇:Go语言接口定义与用法示例
    下一篇:学习GO编程必备知识汇总
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Go语言使用HTTP包创建WEB服务器的方法 语言,使用,HTTP,包创建,包,