首页后端开发GOgolang开发外包熟练之gin & net(二)

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

时间2023-10-27 19:19:03发布访客分类GO浏览810
导读:http getpackage main import ( "fmt" "net/http" func dealGetHandler(w http.ResponseWriter, r *http.Request { w.Wr...

http get

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

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

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

package main

import (
	"log"
	"net/http"
)

func main() {

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

gin api demo

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

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

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")
}
    

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: golang开发外包熟练之gin & net(二)
本文地址: https://pptw.com/jishu/513477.html
hello world C C++ Python Java Go Golang 开发外包熟练教程(从零开始学GO)

游客 回复需填写必要信息