• golang 简单web服务


    1.golang print输入

    package main
    
    import "fmt"
    
    func main() {
    	fmt.Printf("Hello World!
    ")
    }
    

    执行如下命令
    go build print.go

    2. go web 服务端

    Go语言标准库 - net/http

    Go Web服务器的搭建就需要用到Go语言官方提供的标准库 net/http,通过http包提供了HTTP客户端和服务端的实现。同时使用这个包能很简单地对web的路由,静态文件,模版,cookie等数据进行设置和操作。

    http包建立Web服务器

    package main
    import (
        "fmt"
        "net/http"
        "strings"
        "log"
    )
    func sayhelloName(w http.ResponseWriter, r *http.Request) {
        r.ParseForm() //解析参数,默认是不会解析的
        fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息
        fmt.Println("path", r.URL.Path)
        fmt.Println("scheme", r.URL.Scheme)
        fmt.Println(r.Form["url_long"])
        for k, v := range r.Form {
            fmt.Println("key:", k)
            fmt.Println("val:", strings.Join(v, ""))
        }
        fmt.Fprintf(w, "Hello Wrold!") //这个写入到w的是输出到客户端的
    }
    func main() {
        http.HandleFunc("/", sayhelloName) //设置访问的路由
        err := http.ListenAndServe(":9090", nil) //设置监听的端口
        if err != nil {
            log.Fatal("ListenAndServe: ", err)
        }
    }

    上面的代码我们在IDE中编译后并运行成功后,这个时侯我们就可以在9090端口监听http链接请求了。

    们在浏览器中输入了 http://ip:9090,可以看到浏览器页面中输入出 Hello World!
    这个时侯如果我们在浏览器地址后面加一些参数试试:http://ip:9090?url_long=111&url_long=222,

    看看浏览器中输出什么?服务器端输出的又是什么?

    map[url_long:[111 222]]
    path /
    scheme 
    [111 222]
    key: url_long
    val: 111222
     

    我们看到了上面的代码,要编写一个Web服务器是不是很简单,只要调用http包的两个函数就可以了。
    我们看到Go通过简单的几行代码就已经运行起来一个Web服务了,而且这个Web服务内部有支持高并发的特性。

     

  • 相关阅读:
    python报错:【 AttributeError module 'time' has no attribute 'clock'】
    Python批量重命名脚本
    【Java】复制文件打印流改进版
    【Java】复制多级文件夹
    【CSS】仿京东锚点侧边栏效果
    【Java】复制单级文件夹
    【Java】序列化&反序列化
    冒泡排序与优化 如何实现最优时间复杂度为O(n)的冒泡排序
    NodeRED中连接Mysql数据库并实现增删改查的操作
    NodeRED中使用exec节点实现调用外部exe程序
  • 原文地址:https://www.cnblogs.com/ztteng/p/8410152.html
Copyright © 2020-2023  润新知