package main
import (
"fmt"
"log"
"net/http"
"strings"
)
/*
入口----->
*/
func main() {
//我是调用函数的路由
http.HandleFunc("/", sayhelloName)//设置访问的路由
调用方法的路由
http.HandleFunc("/say", People{}.woyeSayhelloName)
//我一直盯着9090的端口看,谁打电话给9090,我就调用 sayHelloName函数
err :=http.ListenAndServe(":9090", nil)//设置监听的端口
if err !=nil {
log.Fatal("ListenAndServe: ", err)
}
}
//我是sayhelloName函数
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 World!")//这个写入到w的是输出到客户端的
}
//我是一个有方法的人
type People struct {
}
//我是人的一个方法
func (p People)woyeSayhelloName(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, "nice to meet you World!")//这个写入到w的是输出到客户端的
}