官术网_书友最值得收藏!

Understanding Go's net/http package

Go's net/http package deals with HTTP client and server implementations. Here, we are mainly interested in the server implementation. Let us create a small Go program called basicHandler.go that defines the route and a function handler:

package main
import (
"io"
"net/http"
"log"
)
// hello world, the web server
func MyServer(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "hello, world!\n")
}
func main() {
http.HandleFunc("/hello", MyServer)
log.Fatal(http.ListenAndServe(":8000", nil))
}

This code does the following things: 

  1. Create a route called  /hello
  2. Create a handler called MyServer.
  3. Whenever the request comes on the route (/hello), the handler function will be executed.
  4. Write hello, world to the response.
  5. Start the server on port 8000. ListenAndServe returns error if something goes wrong. So log it using log.Fatal.
  6. The http package has a function called HandleFunc, using which we can map an URL to a function.
  1. Here, w is a response writer. A ResponseWriter interface is used by an HTTP handler to construct an HTTP response.
  2. req is a request object, which deals with all the properties and methods of an HTTP request.

Use the log function to debug potential errors. The ListenAndServe function returns an error if there are any.

主站蜘蛛池模板: 庄河市| 从化市| 房山区| 运城市| 阳城县| 商城县| 雷州市| 清水县| 灵石县| 紫云| 滕州市| 垣曲县| 陆丰市| 兴业县| 波密县| 盱眙县| 漳浦县| 昌吉市| 鄱阳县| 凌云县| 讷河市| 永兴县| 贡觉县| 巧家县| 曲沃县| 文化| 容城县| 从江县| 韩城市| 会泽县| 宝丰县| 广宁县| 平湖市| 玉田县| 盐亭县| 北宁市| 勐海县| 星子县| 澎湖县| 阿鲁科尔沁旗| 香格里拉县|