项目结构
package main
import (
"fmt"
"log"
"net/http"
)
// w表示response对象,返回给客户端的内容都在对象里处理
// r表示客户端请求对象,包含了请求头,请求参数等等
func index(w http.ResponseWriter, r *http.Request) {
// 往w里写入内容,就会在浏览器里输出
fmt.Fprintf(w, "Hello golang http!")
// 接受输入的内容,并在iterm中打印出来
b, err := ioutil.ReadAll(r.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", b)
}
func main() {
// 设置路由,如果访问/,则调用index方法
http.HandleFunc("/", index)
// 启动web服务,监听9090端口
err := http.ListenAndServe(":9090", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
本地执行:go run start.go
mac os&Linux(http://lib.csdn.net/base/linux)交叉编译:
CGO_ENABLED=0 GOARCH=amd64 GOOS=linux Go build
编译后就会在src下出现startPkg二进制文件,可通过上传至云存储,并在linux机器上curl下来:
curl -o ~/tmp/start http://o8ckhoonz.bkt.clouddn.com/start
执行:./start
在浏览器中访问http://ip:9090就可以看到Hello golang http!输出了。