Json
g.Client().ContentJson().PostContent(ctx, "http://order.svc/v1/order", g.Map{ "uid" : 1, "sku_id" : 10000, "amount" : 19.99, "create_time" : "2020-03-26 12:00:00", })
通过调用ContentJson链式操作方法,该请求将会将Content-Type设置为application/json,并且将提交参数自动编码为Json:
ContentJson
Content-Type
application/json
{"uid":1,"sku_id":10000,"amount":19.99,"create_time":"2020-03-26 12:00:00"}
Xml
g.Client().ContentXml().PostContent(ctx, "http://order.svc/v1/order", g.Map{ "uid" : 1, "sku_id" : 10000, "amount" : 19.99, "create_time" : "2020-03-26 12:00:00", })
通过调用ContentXml链式操作方法,该请求将会将Content-Type设置为application/xml,并且将提交参数自动编码为Xml:
ContentXml
application/xml
<doc><amount>19.99</amount><create_time>2020-03-26 12:00:00</create_time><sku_id>10000</sku_id><uid>1</uid></doc>
ContentType
我们可以通过ContentType方法自定义客户端请求的ContentType。如果是给定的string/[]byte参数,客户端将会直接将参数提交给服务端;如果是其他数据类型将会自动对参数执行url encode再提交到服务端。
string/[]byte
url encode
示例1:
g.Client().ContentType("application/json").PostContent( ctx, "http://order.svc/v1/order", `{"uid":1,"sku_id":10000,"amount":19.99,"create_time":"2020-03-26 12:00:00"}`, )
或
g.Client().ContentType("application/json; charset=utf-8").PostContent( ctx, "http://order.svc/v1/order", `{"uid":1,"sku_id":10000,"amount":19.99,"create_time":"2020-03-26 12:00:00"}`, )
提交的参数如下:
示例2:
g.Client().ContentType("application/x-www-form-urlencoded; charset=utf-8").GetContent( ctx, "http://order.svc/v1/order", g.Map{ "category" : 1, "sku_id" : 10000, }, )
category=1&sku_id=10000