func HandleFunc

2018-11-28  本文已影响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。

上一篇下一篇

猜你喜欢

热点阅读