Gin教程(4)—HTTP方法处理

  1. HTTP方法类型
  2. Gin对于HTTP方法的支持

HTTP方法类型

根据 HTTP 标准,HTTP 请求可以使用多种请求方法。

  • HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。
  • HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
方法 描述
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。
MOVE 请求服务器将指定的页面移至另一个网络地址。
COPY 请求服务器将指定的页面拷贝至另一个网络地址。
LINK 请求服务器建立链接关系。
UNLINK 断开链接关系。
WRAPPED 允许客户端发送经过封装的请求。
Extension-mothed 在不改动协议的前提下,可增加另外的方法。

可能还有其他我没接触过的方法,欢迎大家补充哈😄!

Gin对于HTTP方法的支持

Gin v1.4.0版本默认只支持:GET, POST, PUT, PATCH, HEAD, OPTIONS, DELETE, CONNECT, TRACE 这几种方法,但是我们也可以通过RouterGroup.Handle()函数自行拓展。

示例代码:

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main(){
    webEng := gin.Default()

    //普通方法
    webEng.GET("/get", HandleGeneric)
    webEng.POST("/post", HandleGeneric)
    webEng.HEAD("/head",HandleGeneric)

    //同时绑定所有支持的方法:GET, POST, PUT, PATCH, HEAD, OPTIONS, DELETE, CONNECT, TRACE.
    webEng.Any("/",HandleAny)

    //绑定自定义方法
    webEng.Handle("ECHO","/", HandleAny)

    webEng.Run(":8080")
}

func HandleGeneric(c *gin.Context){
    c.String(http.StatusOK,"generic method: %s", c.Request.Method)
}

func HandleAny(c *gin.Context){
    c.String(http.StatusOK,"method : %s", c.Request.Method)
}

说明:

  1. 对于:GET, POST, PUT, PATCH, HEAD, OPTIONS, DELETE,这7种HTTP方法,gin.RouterGroup提供了相应封装好的方法,可以直接使用。
  2. 如果希望某个路由支持所有的请求方法,或者请求方法不确定,可以使用RouterGroup.Any()函数绑定。
  3. 如果希望支持其他的HTTP方法,或是自定义的HTTP方法,需要使用RouterGroup.Handle()函数。

调试结果:

httpMethodDebug

代码下载:https://github.com/IrvinYoung/gin-lessons


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 irvin.em@live.com。

文章标题:Gin教程(4)—HTTP方法处理

文章字数:696

本文作者:dino

发布时间:2019-11-19, 15:49:53

最后更新:2019-11-19, 16:23:39

原始链接:https://blog.walkbc.com/2019/11/19/gin-lesson-httpMothed/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

QQ交流群:273078549

目录