httpclient.go 958 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package util
  2. import (
  3. "context"
  4. "net/http"
  5. "gitea.ckfah.com/cjjy/gocommon/pkg/net/httpclent"
  6. )
  7. /**
  8. 自定义一些Http-Client的一些通用的方法
  9. */
  10. const (
  11. GlobalUserId = "global-user-id"
  12. )
  13. var (
  14. CustomerHeaderHttpOption httpclent.Option = func(options *httpclent.Options) {
  15. options.HandlerRequestHeader = func(ctx context.Context, header http.Header) {
  16. // 首先使用默认的处理器处理header
  17. httpclent.DefaultHandlerRequestHandler(ctx, header)
  18. // 自定义的信息从ctx中拿到
  19. userId, _ := ctx.Value(GlobalUserId).(string)
  20. header.Add(GlobalUserId, userId)
  21. }
  22. }
  23. )
  24. /**
  25. 自定义添加校验http响应异常的方法,这个方法只需要全局调用一次,介意写在main函数初始化上,默认已经支持有 error.message,code.data.message格式的异常
  26. */
  27. func AddVialidator() {
  28. httpclent.AddValidatorResponseBody("data.message", func(body []byte) (err error) {
  29. //抓取到error
  30. return nil
  31. })
  32. }