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的是输出到客户端的

}