golang 简单的http服务

Posted evildoerone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 简单的http服务相关的知识,希望对你有一定的参考价值。

一个简单的http 服务, 源码如下:
func TestHttp(t *testing.T){
http.HandleFunc("/", sayhelloName) //设置访问的路由
http.HandleFunc("/login", login) //设置访问的路由
err := http.ListenAndServe(":9090", nil) //设置监听的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
func sayhelloName(w http.ResponseWriter, r *http.Request) {
r.ParseForm() //解析url传递的参数,对于POST则解析响应包的主体(request body)
//注意:如果没有调用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 astaxie!") //这个写入到w的是输出到客户端的
}

func login(w http.ResponseWriter, r *http.Request) {
fmt.Println("method:", r.Method) //获取请求的方法
if r.Method == "GET" {
t, _ := template.ParseFiles("login.gtpl")
log.Println(t.Execute(w, nil))
} else {
//请求的是登录数据,那么执行登录的逻辑判断
fmt.Println("username:", r.Form["username"])
fmt.Println("password:", r.Form["password"])
}
}

以上是关于golang 简单的http服务的主要内容,如果未能解决你的问题,请参考以下文章

Golang Web入门:自顶向下理解Http服务器

Golang Web入门:自顶向下理解Http服务器

Golang构建HTTP服务--- net/http库源码笔记

golang goroutine例子[golang并发代码片段]

golang 简单的http服务

golang爬坑:一个简单的http内网转发