一 点睛
Web 是基于 http 协议的一个服务,Go 语言里面提供了一个完善的 net/http 包,通过 http 包可以很方便的就搭建起来一个可以运行的 Web 服务。同时使用这个包能很简单地对 Web 的路由,静态文件,模版,cookie 等数据进行设置和操作。
二 代码
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, ""))
}
// 这个写入到 w ,然后输出到客户端
fmt.Fprintf(w, "Hello go web!")
}
func main() {
http.HandleFunc("/", sayhelloName) // 设置访问的路由
err := http.ListenAndServe(":9090", nil) // 设置监听的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
三 测试
1 说明
上面代码,在 build 之后,再执行 web.exe ,此时在 9090 端口监听 http 链接请求了。
2 在浏览器输入 http://localhost:9090。
3 浏览器页面输出如下。
4 服务器输出如下。
map[]
path /
scheme
[]
map[]
path /favicon.ico
scheme
[]
5 在浏览器输入 http://localhost:9090/?url_long=111&url_long=222
6 浏览器页面输出如下。
7 服务器输出如下。
map[url_long:[111 222]]
path /
scheme
[111 222]
key: url_long
val: 111222
map[]
path /favicon.ico
scheme
[]