diff --git a/http/http.go b/http/http.go index dbd585a..fe98596 100644 --- a/http/http.go +++ b/http/http.go @@ -2,6 +2,7 @@ package http import ( "context" + "errors" "fmt" "net/http" "reflect" @@ -129,28 +130,28 @@ func doRequest(ctx context.Context, method string, url string, headers map[strin return } defer response.Close() - //result := response.ReadAll() - // - //// 统一处理内部API响应格式:{code:200,message:"",data:{...}} - //resultStrut := &ghttp.DefaultHandlerResponse{} - // - //if err = gconv.Struct(result, &resultStrut); err != nil { // 修复:增加err检查 - // return errors.New("响应解析失败: " + err.Error()) - //} - // - //// 添加调试日志:打印解析后的结构 - //g.Log().Debugf(ctx, "[HTTP] 解析后结构: Code=%d, Message=%s, Data类型=%T, Data值=%+v", - // resultStrut.Code, resultStrut.Message, resultStrut.Data, resultStrut.Data) - // - //if resultStrut.Code == 200 || resultStrut.Code == 0 { - // if err = gconv.Struct(resultStrut.Data, target); err != nil { // 修复:增加err检查 - // return errors.New("数据解析失败: " + err.Error()) - // } - // // 添加调试日志:打印最终的target - // g.Log().Debugf(ctx, "[HTTP] 最终target: %+v", target) - //} else { - // err = errors.New(resultStrut.Message) - //} + result := response.ReadAll() + + // 统一处理内部API响应格式:{code:200,message:"",data:{...}} + resultStrut := &ghttp.DefaultHandlerResponse{} + + if err = gconv.Struct(result, &resultStrut); err != nil { // 修复:增加err检查 + return errors.New("响应解析失败: " + err.Error()) + } + + // 添加调试日志:打印解析后的结构 + g.Log().Debugf(ctx, "[HTTP] 解析后结构: Code=%d, Message=%s, Data类型=%T, Data值=%+v", + resultStrut.Code, resultStrut.Message, resultStrut.Data, resultStrut.Data) + + if resultStrut.Code == 200 || resultStrut.Code == 0 { + if err = gconv.Struct(resultStrut.Data, target); err != nil { // 修复:增加err检查 + return errors.New("数据解析失败: " + err.Error()) + } + // 添加调试日志:打印最终的target + g.Log().Debugf(ctx, "[HTTP] 最终target: %+v", target) + } else { + err = errors.New(resultStrut.Message) + } return } func Get(ctx context.Context, url string, headers map[string]string, target any, data ...any) (err error) {