項目結(jié)構(gòu)
package main
import (
"fmt"
"log"
"net/http"
)
// w表示response對象,返回給客戶端的內(nèi)容都在對象里處理
// r表示客戶端請求對象肌访,包含了請求頭潘飘,請求參數(shù)等等
func index(w http.ResponseWriter, r *http.Request) {
// 往w里寫入內(nèi)容杏慰,就會在瀏覽器里輸出
fmt.Fprintf(w, "Hello golang http!")
// 接受輸入的內(nèi)容,并在iterm中打印出來
b, err := ioutil.ReadAll(r.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", b)
}
func main() {
// 設(shè)置路由誉结,如果訪問/鹅士,則調(diào)用index方法
http.HandleFunc("/", index)
// 啟動web服務(wù),監(jiān)聽9090端口
err := http.ListenAndServe(":9090", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
本地執(zhí)行:go run start.go
mac os&Linux(http://lib.csdn.net/base/linux)交叉編譯:
CGO_ENABLED=0 GOARCH=amd64 GOOS=linux Go build
編譯后就會在src下出現(xiàn)startPkg二進(jìn)制文件惩坑,可通過上傳至云存儲掉盅,并在linux機(jī)器上curl下來:
curl -o ~/tmp/start http://o8ckhoonz.bkt.clouddn.com/start
執(zhí)行:./start
在瀏覽器中訪問http://ip:9090就可以看到Hello golang http!輸出了。