1. 程式人生 > >73-golang簡單http伺服器

73-golang簡單http伺服器



搭建一下簡單的
http伺服器

我們來搞一個伺服器
當訪問對應的資料夾下的檔案的時候
我們就開啟這個檔案

我們先寫一個簡單的
監聽根目錄


func main() {

	//註冊監聽"/"根目錄
	http.HandleFunc("/", handlerFunc)

	//開啟監聽服務
	http.ListenAndServe("127.0.0.1:8080", nil)
}

//處理根目錄請求
func handlerFunc(writer http.ResponseWriter, request *http.Request) {
	str := "hello world"
	writer.Write([]byte(str))
}



然後我們開啟另一個監聽
然後訪問對應目錄的檔案


func main() {

	//註冊監聽"/"根目錄
	http.HandleFunc("/", handlerFunc)

	//註冊監聽test
	http.HandleFunc("/test/", testFunc)

	//開啟監聽服務
	http.ListenAndServe("127.0.0.1:8080", nil)
}

func testFunc(writer http.ResponseWriter, request *http.Request) {
	//獲取url
	url := request.URL.String()
	fmt.Println("url:", url)

	//開啟對應目錄的file檔案
	file, _ := os.Open("f:" + url)

	//建立arr切片
	arr := make([]byte, 1024)

	//迴圈讀取並寫入到客戶端
	for {
		num, err := file.Read(arr)
		writer.Write(arr[:num])
		if err == io.EOF {
			break
		}
	}
}

//處理根目錄請求
func handlerFunc(writer http.ResponseWriter, request *http.Request) {
	str := "hello world"
	writer.Write([]byte(str))
}