項目結構
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!輸出了。