File tree 5 files changed +92
-0
lines changed
5 files changed +92
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ Web 框架性能和功能测试
3
+ ==============
4
+
5
+ ## 案例
6
+ - [ base] ( base ) HTTP库 使用案例
7
+ - [ fasthttp] ( fasthttp ) fasthttp 使用案例
8
+ - [ httprouter] ( httprouter ) httprouter 使用案例
9
+ - [ echo] ( echo ) echo 使用案例
Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "fmt"
5
+ "log"
6
+ "net/http"
7
+ )
8
+
9
+ func sayhelloName (w http.ResponseWriter , r * http.Request ) {
10
+ fmt .Fprintf (w , "Hello!" ) //这个写入到w的是输出到客户端的
11
+ }
12
+
13
+ func main () {
14
+ http .HandleFunc ("/" , sayhelloName ) //设置访问的路由
15
+ err := http .ListenAndServe (":8080" , nil ) //设置监听的端口
16
+ if err != nil {
17
+ log .Fatal ("ListenAndServe: " , err )
18
+ }
19
+ fmt .Println ("start ok!" )
20
+ }
Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "net/http"
5
+
6
+ "github.com/labstack/echo"
7
+ )
8
+
9
+ // Handler
10
+ func hello (c echo.Context ) error {
11
+ return c .String (http .StatusOK , "Hello!" )
12
+ }
13
+
14
+ // 启动方法
15
+ func main () {
16
+ // Echo instance
17
+ e := echo .New ()
18
+ e .Debug = false
19
+ // Routes
20
+ e .GET ("/" , hello )
21
+
22
+ // Start server
23
+ e .Logger .Fatal (e .Start (":8080" ))
24
+ }
Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "fmt"
5
+
6
+ "github.com/valyala/fasthttp"
7
+ )
8
+
9
+ // RequestHandler 类型,使用 RequestCtx 传递 HTTP 的数据
10
+ func httpHandle (ctx * fasthttp.RequestCtx ) {
11
+ fmt .Fprintf (ctx , "Hello!" ) // *RequestCtx 实现了 io.Writer
12
+ }
13
+
14
+ func main () {
15
+ // 一定要写 httpHandle,否则会有 nil pointer 的错误,没有处理 HTTP 数据的函数
16
+ if err := fasthttp .ListenAndServe ("0.0.0.0:8080" , httpHandle ); err != nil {
17
+ fmt .Println ("start fasthttp fail:" , err .Error ())
18
+ }
19
+ fmt .Println ("start ok!" )
20
+ }
Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "fmt"
5
+ "github.com/julienschmidt/httprouter"
6
+ "net/http"
7
+ "log"
8
+ )
9
+
10
+ func Index (w http.ResponseWriter , r * http.Request , _ httprouter.Params ) {
11
+ fmt .Fprint (w , "Hello!" )
12
+ }
13
+
14
+ func main () {
15
+ router := httprouter .New ()
16
+ router .GET ("/" , Index )
17
+
18
+ log .Fatal (http .ListenAndServe (":8080" , router ))
19
+ }
You can’t perform that action at this time.
0 commit comments