Skip to content

Commit 434190f

Browse files
committed
<http><框架><测试>
1 parent 1edda59 commit 434190f

File tree

5 files changed

+92
-0
lines changed

5 files changed

+92
-0
lines changed

demo/httptest/README.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
Web 框架性能和功能测试
3+
==============
4+
5+
## 案例
6+
- [base](base) HTTP库 使用案例
7+
- [fasthttp](fasthttp) fasthttp 使用案例
8+
- [httprouter](httprouter) httprouter 使用案例
9+
- [echo](echo) echo 使用案例

demo/httptest/base/main.go

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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+
}

demo/httptest/echo/main.go

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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+
}

demo/httptest/fasthttp/main.go

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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+
}

demo/httptest/httprouter/main.go

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
}

0 commit comments

Comments
 (0)