从GOFrame v1.11版本开始,Request对象提供了对客户端提交的JSON/XML数据格式的原生支持,为开发者提供了更便捷的数据获取特性,以进一步提高开发效率。 

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的威信网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
package main
import (
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/net/ghttp"
)
func main() {
	s := g.Server()
	s.BindHandler("/", func(r *ghttp.Request) {
		r.Response.Writef("name: %v, pass: %v", r.Get("name"), r.Get("pass"))
	})
	s.SetPort(8199)
	s.Run()
}执行后,我们通过curl工具提交数据来测试一下: 
Query数据格式$ curl "http://127.0.0.1:8199/?name=john&pass=123"
name: john, pass: 123
Form表单提交$ curl -d "name=john&pass=123" "http://127.0.0.1:8199/"
name: john, pass: 123
JSON数据格式$ curl -d '{"name":"john","pass":"123"}' "http://127.0.0.1:8199/"
name: john, pass: 123
XML数据格式$ curl -d 'john 123  ' "http://127.0.0.1:8199/"
name: john, pass: 123
$ curl -d 'john 123  ' "http://127.0.0.1:8199/"
name: john, pass: 123
package main
import (
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/net/ghttp"
	"github.com/gogf/gf/v2/util/gvalid"
)
type RegisterReq struct {
	Name  string `p:"username"  v:"required|length:6,30#请输入账号|账号长度为:min到:max位"`
	Pass  string `p:"password1" v:"required|length:6,30#请输入密码|密码长度不够"`
	Pass2 string `p:"password2" v:"required|length:6,30|same:password1#请确认密码|密码长度不够|两次密码不一致"`
}
type RegisterRes struct {
	Code  int         `json:"code"`
	Error string      `json:"error"`
	Data  interface{} `json:"data"`
}
func main() {
	s := g.Server()
	s.BindHandler("/register", func(r *ghttp.Request) {
		var req *RegisterReq
		if err := r.Parse(&req); err != nil {
			// Validation error.
			if v, ok := err.(gvalid.Error); ok {
				r.Response.WriteJsonExit(RegisterRes{
					Code:  1,
					Error: v.FirstString(),
				})
			}
			// Other error.
			r.Response.WriteJsonExit(RegisterRes{
				Code:  1,
				Error: err.Error(),
			})
		}
		// ...
		r.Response.WriteJsonExit(RegisterRes{
			Data: req,
		})
	})
	s.SetPort(8199)
	s.Run()
}执行后,我们通过curl工具提交数据来测试一下: 
JSON数据格式$ curl -d '{"username":"johngcn","password1":"123456","password2":"123456"}' "http://127.0.0.1:8199/register"
{"code":0,"error":"","data":{"Name":"johngcn","Pass":"123456","Pass2":"123456"}}
$ curl -d '{"username":"johngcn","password1":"123456","password2":"123"}' "http://127.0.0.1:8199/register"
{"code":1,"error":"两次密码不一致","data":null}可以看到,我们提交的JSON内容也被Parse方法智能地转换为了结构体对象。 
XML数据格式$ curl -d 'johngcn 123456 123456  ' "http://127.0.0.1:8199/register"
{"code":0,"error":"","data":{"Name":"johngcn","Pass":"123456","Pass2":"123456"}}
$ curl -d 'johngcn 123456 123  ' "http://127.0.0.1:8199/register"
{"code":1,"error":"两次密码不一致","data":null}可以看到,我们提交的XML内容也被Parse方法智能地转换为了结构体对象。
                网页标题:创新互联GoFrame教程:GoFrame请求输入-JSON/XML
                
                网页路径:http://www.csdahua.cn/qtweb/news12/283662.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网