更新一下http.go
This commit is contained in:
15
http/http.go
15
http/http.go
@@ -89,20 +89,7 @@ func doRequest(ctx context.Context, method string, url string, headers map[strin
|
||||
defer response.Close()
|
||||
result := response.ReadAll()
|
||||
|
||||
// 第三方API特例:RAGFlow等第三方API响应格式为{code,data,message}一层结构,直接解析原始JSON到target
|
||||
// 内部API格式为{code:200,message:"",data:{...}}两层结构,需经过DefaultHandlerResponse二次解析
|
||||
// 判断依据:URL包含/api/v1/(不影响内部API调用)
|
||||
isThirdPartyAPI := strings.Contains(url, "/api/v1/")
|
||||
|
||||
if isThirdPartyAPI {
|
||||
// 第三方API特例:直接解析原始JSON到target,不经过DefaultHandlerResponse
|
||||
if err = gconv.Struct(result, target); err != nil {
|
||||
return errors.New("第三方API响应解析失败: " + err.Error())
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 内部API:保持原有逻辑,先解析为DefaultHandlerResponse,再提取data字段
|
||||
// 统一处理内部API响应格式:{code:200,message:"",data:{...}}
|
||||
resultStrut := &ghttp.DefaultHandlerResponse{}
|
||||
|
||||
if err = gconv.Struct(result, &resultStrut); err != nil { // 修复:增加err检查
|
||||
|
||||
Reference in New Issue
Block a user