增加多种请求方式参数解析
This commit is contained in:
parent
ca6def0797
commit
8d55472b3a
@ -12,6 +12,8 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"git.zhangdeman.cn/zhangdeman/gopkg/util"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -84,6 +86,16 @@ func ParsePostRequestBody(ctx *gin.Context) (map[string]interface{}, error) {
|
|||||||
// application/json 请求参数
|
// application/json 请求参数
|
||||||
return ParsePostRequestForApplicationJSON(ctx)
|
return ParsePostRequestForApplicationJSON(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if strings.Contains(contentType, "x-www-form-urlencoded") {
|
||||||
|
// Content-Type: application/x-www-form-urlencoded 请求方法
|
||||||
|
return ParsePostRequestForApplicationFormURLEncoded(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.Contains(contentType, "form-data") {
|
||||||
|
// multipart/form-data 请求方法
|
||||||
|
return ParsePostRequestForFormData(ctx)
|
||||||
|
}
|
||||||
return make(map[string]interface{}), nil
|
return make(map[string]interface{}), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,3 +116,45 @@ func ParsePostRequestForApplicationJSON(ctx *gin.Context) (map[string]interface{
|
|||||||
}
|
}
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ParsePostRequestForApplicationFormURLEncoded 解析 application/x-www-form-urlencoded 表单
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 8:11 下午 2021/9/14
|
||||||
|
func ParsePostRequestForApplicationFormURLEncoded(ctx *gin.Context) (map[string]interface{}, error) {
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
result map[string]interface{}
|
||||||
|
)
|
||||||
|
|
||||||
|
if err = ctx.Request.ParseForm(); nil != err {
|
||||||
|
return make(map[string]interface{}), err
|
||||||
|
}
|
||||||
|
if err = util.JSONUnmarshalWithNumberForIOReader(ctx.Request.Body, &result); nil != err {
|
||||||
|
return make(map[string]interface{}), err
|
||||||
|
}
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// ParsePostRequestForFormData 解析 multipart/form-data 表单数据
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 8:17 下午 2021/9/14
|
||||||
|
func ParsePostRequestForFormData(ctx *gin.Context) (map[string]interface{}, error) {
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
result map[string]interface{}
|
||||||
|
)
|
||||||
|
if err = ctx.Request.ParseMultipartForm(32 << 20); nil != err {
|
||||||
|
return make(map[string]interface{}), err
|
||||||
|
}
|
||||||
|
if err = ctx.Request.ParseForm(); nil != err {
|
||||||
|
return make(map[string]interface{}), err
|
||||||
|
}
|
||||||
|
if err = util.JSONUnmarshalWithNumberForIOReader(ctx.Request.Body, &result); nil != err {
|
||||||
|
return make(map[string]interface{}), err
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user