示例1,提交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:

{"uid":1,"sku_id":10000,"amount":19.99,"create_time":"2020-03-26 12:00:00"}

示例2,提交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:

<doc><amount>19.99</amount><create_time>2020-03-26 12:00:00</create_time><sku_id>10000</sku_id><uid>1</uid></doc>

示例3,自定义ContentType

我们可以通过ContentType方法自定义客户端请求的ContentType。如果是给定的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"}`,
)

提交的参数如下:

{"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






Content Menu

  • No labels