客户端输出

会话上下文Context中暴露了http.ResponseWriter,可通过它来对客户端响应各种数据。

输出String

  1. dispatcher.Router.GET("/", func(ctx *httpdispatcher.Context) error {
  2. //设置HTTP状态码
  3. ctx.ResponseWriter.WriteHeader(200)
  4. //要输出的内容
  5. ctx.ResponseWriter.Write([]byte("输出给客户端的字符串"))
  6. return nil
  7. })

输出JSON

  1. dispatcher.Router.GET("/json", func(ctx *httpdispatcher.Context) error {
  2. //定义json结构体
  3. var resp struct{
  4. ID int `json:"id"`
  5. Nickname string `json:"nickname"`
  6. }
  7. //赋值json数据
  8. resp.ID = 123
  9. resp.Nickname = "dxvgef"
  10. //序列化json
  11. data, err := json.Marshal(&resp)
  12. if err != nil {
  13. return ctx.Return(err)
  14. }
  15. //设置头信息中的文档类型及编码
  16. ctx.ResponseWriter.Header().Set("Content-Type", "application/json; charset=UTF-8")
  17. //设置HTTP状态码
  18. ctx.ResponseWriter.WriteHeader(200)
  19. //输出JSON数据
  20. ctx.ResponseWriter.Write(data)
  21. return nil
  22. })