前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发外包--golang熟练之gin & net(二)

开发外包--golang熟练之gin & net(二)

原创
作者头像
Godev
修改2023-07-31 19:26:08
5800
修改2023-07-31 19:26:08
举报
文章被收录于专栏:GodevGodev

http get

代码语言:txt
复制
package main

import (
	"fmt"
	"net/http"
)

func dealGetHandler(w http.ResponseWriter, r *http.Request) {
	w.Write([]byte("hello golang!"))
}
func main() {
	http.HandleFunc("/req/get", dealGetHandler)
	fmt.Println("http://127.0.0.1:8000/req/get")
	http.ListenAndServe(":8000", nil)

}

client http post

代码语言:txt
复制
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"strings"
)

func main()  {
	url := "http://localhost:8090/req/post"
	contentType := "application/json"
	data2 := `{
		"Name":"root",
		"Passwd":"1234",
		"Age": 24
	}`

	resp,_ := http.Post(url,contentType,strings.NewReader(data2))
	b,_ := ioutil.ReadAll(resp.Body)
	fmt.Println(b)
}

gin

代码语言:txt
复制
package main

import (
	"fmt"

	"github.com/gin-gonic/gin"
	//"github.com/gin-gonic/gin"
)

func main() {
	// 1、创建路由engine
	// r就是 *Engine 结构体
	r := gin.Default()
	// 2、路由绑定
	/*
		"/" 路由
		func(c *gin.Context)  处理函数
	*/
	r.GET("/", func(c *gin.Context) {
		// 第一:解析get/post请求的参数
		// 第二:根据参数去查询数据库(操作数据库:添加数据、删除数据)
		// 第三:返回从数据库查询的数据
		c.String(200, "hello golang~")
	})
	fmt.Println("http://127.0.0.1:8000")
	// 3、启动监听端口
	// 对 net/http服务的封装,替换了 http.ListenAndServe(address, engine)
	r.Run(":8000")
}


[root@VM-4-12-centos helloword]# go run main.go 
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /                         --> main.main.func1 (3 handlers)
http://127.0.0.1:8000
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on :8000
[GIN] 2022/05/23 - 14:57:06 | 200 |      74.081µs | 203.205.141.117 | GET      "/"
[GIN] 2022/05/23 - 14:57:07 | 404 |       2.166µs | 203.205.141.117 | GET      "/favicon.ico"
[GIN] 2022/05/23 - 14:57:21 | 200 |      11.325µs | 203.205.141.117 | GET      "/"
[GIN] 2022/05/23 - 14:57:23 | 200 |       9.484µs | 203.205.141.117 | GET      "/"
[GIN] 2022/05/23 - 14:57:25 | 200 |      10.068µs | 203.205.141.117 | GET      "/"
[GIN] 2022/05/23 - 14:57:26 | 200 |      11.043µs | 203.205.141.117 | GET      "/"
[GIN] 2022/05/23 - 14:57:27 | 200 |      28.942µs | 203.205.141.117 | GET      "/"

http file server

代码语言:txt
复制
package main

import (
	"log"
	"net/http"
)

func main() {
	fs := http.FileServer(http.Dir("./"))
	log.Fatal(http.ListenAndServe(":8080", fs))
}

gin api demo

代码语言:txt
复制
package main

// API demo
import (
	"fmt"

	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()
	r.GET("/book/:id", GetBookDealHandler)
	r.Run(":8080")
}

func GetBookDealHandler(b *gin.Context) {
	bookID := b.Param("id")
	fmt.Println(bookID, "____>")
	b.String(200, "API params")
}

gin url

代码语言:txt
复制
package main

import (
	"fmt"

	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()
	r.GET("/user", UserDetailHandler)
	r.Run(":8080")
}

func UserDetailHandler(u *gin.Context) {
	name := u.Query("name")
	name2 := u.DefaultQuery("name", "default val")
	fmt.Println("获取的用户名字是:——————", name, name2)
	u.String(200, "url params")
}

shouldbind POST

代码语言:txt
复制
package main

import (
	"fmt"

	"github.com/gin-gonic/gin"
)

type Login struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

func LoginHandler(l1 *gin.Context) {
	var login Login
	if err := l1.ShouldBind(&login); err != nil {
		l1.String(200, "参数校验错误")
	}
	fmt.Println(login.Username, login.Password)
	l1.String(200, "success")
}
func main() {
	r := gin.Default()
	//r.GET("/login/", LoginHandler)
	r.POST("/login/", LoginHandler)
	r.Run(":8090")
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • http get
  • client http post
  • gin
  • http file server
  • gin api demo
  • gin url
  • shouldbind POST
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档