日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame請(qǐng)求輸入-JSON/XML

從?GOFrame v1.11?版本開(kāi)始,?Request?對(duì)象提供了對(duì)客戶端提交的?JSON/XML?數(shù)據(jù)格式的原生支持,為開(kāi)發(fā)者提供了更便捷的數(shù)據(jù)獲取特性,以進(jìn)一步提高開(kāi)發(fā)效率。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的威信網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

示例1,簡(jiǎn)單示例

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

執(zhí)行后,我們通過(guò)?curl?工具提交數(shù)據(jù)來(lái)測(cè)試一下:

  • ?Query?數(shù)據(jù)格式
$ 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?數(shù)據(jù)格式
$ curl -d '{"name":"john","pass":"123"}' "http://127.0.0.1:8199/"
name: john, pass: 123
  • ?XML?數(shù)據(jù)格式
$ curl -d 'john123' "http://127.0.0.1:8199/"
name: john, pass: 123


$ curl -d 'john123' "http://127.0.0.1:8199/"
name: john, pass: 123

示例2,對(duì)象轉(zhuǎn)換及校驗(yàn)

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#請(qǐng)輸入賬號(hào)|賬號(hào)長(zhǎng)度為:min到:max位"`
	Pass  string `p:"password1" v:"required|length:6,30#請(qǐng)輸入密碼|密碼長(zhǎng)度不夠"`
	Pass2 string `p:"password2" v:"required|length:6,30|same:password1#請(qǐng)確認(rèn)密碼|密碼長(zhǎng)度不夠|兩次密碼不一致"`
}

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

執(zhí)行后,我們通過(guò)?curl?工具提交數(shù)據(jù)來(lái)測(cè)試一下:

  • ?JSON?數(shù)據(jù)格式
$ 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?內(nèi)容也被?Parse?方法智能地轉(zhuǎn)換為了結(jié)構(gòu)體對(duì)象。

  • ?XML?數(shù)據(jù)格式
$ curl -d 'johngcn123456123456' "http://127.0.0.1:8199/register"
{"code":0,"error":"","data":{"Name":"johngcn","Pass":"123456","Pass2":"123456"}}


$ curl -d 'johngcn123456123' "http://127.0.0.1:8199/register"
{"code":1,"error":"兩次密碼不一致","data":null}

可以看到,我們提交的?XML?內(nèi)容也被?Parse?方法智能地轉(zhuǎn)換為了結(jié)構(gòu)體對(duì)象。


文章題目:創(chuàng)新互聯(lián)GoFrame教程:GoFrame請(qǐng)求輸入-JSON/XML
本文路徑:http://m.5511xx.com/article/dphhhoo.html