go基础之web应用
原创
©著作权归作者所有:来自51CTO博客作者zzxiaoma的原创作品,请联系作者获取转载授权,否则将追究法律责任
go基础之web应用https://blog.51cto.com/u_3764469/5547593
Go是一门相对年轻的语言,并且它非常适合用来编写那些需要快速运行的服务器端程序。Go拥有非常多的标准库,许多公司已经开始使用Go了。Go只需要简单的几行就可以建立一个可以运行的web应用。
建立文件server.go
package main
import (
"fmt"
"net/http"
)
func handler(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintf(writer, "hello world!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8000", nil)
}
运行go run server.go
打开浏览器访问http://localhost:8000/,页面显示hello world!
http.HandleFunc("/", handler)
访问根路径执行handler方法,这个方法带有2个参数,一个是http.ResponseWriter接口,一个是指向http.Request的指针。Request是获取访问地址传递的参数,ResponseWriter用于响应给客户端信息。
http.ListenAndServe(":8000", nil)
启动一个8000端口的web服务,这样一个最简单的web应用就建立好了。
那如果还有别的访问地址呢?
http.HandleFunc("/", handler)
http.HandleFunc("/api", api)
http.HandleFunc("/hand", hand)
http.ListenAndServe(":8000", nil)
按照handler函数的样子,再建立api和hand函数
func api(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintf(writer, "hello api!")
}
func hand(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintf(writer, "hello hand!")
}
如果想对服务设置其他参数,需要先定义http.Server结构体
server := http.Server{
Addr: "127.0.0.1:8080",
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
server.ListenAndServe()