美文网首页
func HandleFunc

func HandleFunc

作者: 石见君 | 来源:发表于2018-11-28 11:51 被阅读0次

    func HandleFunc简介
    请看以下实例代码

    package main
    
    import "net/http"
    
    func main(){
        http.HandleFunc("/", hello)
        http.ListenAndServe(":8080", nil)
    }
    
    func hello(w http.ResponseWriter, r *Request){
        w.Write([]byte("hello!"))
    }
    

    http.HandleFunc("/", hello)创建了一个http的路由,URL是根路径,然后监听8080端口。
    每次针对HTTP服务器根路径的一个新请求产生时,服务器将生成一个新的协程goroutine执行hello函数。

    用go搭建一个简单的web服务器

    例1:

    package main
    
    import (
        "fmt"
        "log"
        "net/http"
        "strings"
    )
    
    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, "这是一个web服务器")
    }
    
    func main() {
        http.HandleFunc("/", sayhelloName)
        err := http.ListenAndServe(":9090", nil)
        if err != nil {
            log.Fatal("ListenAndServe:", err)
        }
    }
    

    在终端启动后,然后再浏览器输入http://localhost:9090,则可以看到“这是一个web服务器”

    例2:
    我们更改一下代码,将main函数内的

    http.HandleFunc("/", sayhelloName)
    

    改成

    http.HandleFunc("/test", sayhelloName)
    

    在终端启动后,然后再浏览器输入http://localhost:9090/test,则可以看到“这是一个web服务器”。
    若输入http://localhost:9090,则发生错误404。

    相关文章

      网友评论

          本文标题:func HandleFunc

          本文链接:https://www.haomeiwen.com/subject/vksaqqtx.html