更新redis重试三次,http方法兼容ragflow格式
This commit is contained in:
13
http/http.go
13
http/http.go
@@ -53,6 +53,8 @@ func RouteRegister(controllers []interface{}) {
|
||||
}
|
||||
go Httpserver.Run()
|
||||
}
|
||||
|
||||
// doRequest 统一HTTP请求处理(DELETE用ContentJson发送body,gconv.Struct增加err检查)
|
||||
func doRequest(ctx context.Context, method string, url string, headers map[string]string, target any, data ...any) (err error) {
|
||||
err = utils.ValidStructPtr(target)
|
||||
if err != nil {
|
||||
@@ -65,6 +67,9 @@ func doRequest(ctx context.Context, method string, url string, headers map[strin
|
||||
} else {
|
||||
client.SetHeader("Authorization", g.RequestFromCtx(ctx).GetHeader("Authorization"))
|
||||
}
|
||||
if method == http.MethodDelete && len(data) > 0 { // DELETE请求显式用ContentJson序列化body
|
||||
client = client.ContentJson()
|
||||
}
|
||||
response, err := client.DoRequest(ctx, method, url, data...)
|
||||
if err != nil {
|
||||
return
|
||||
@@ -73,9 +78,13 @@ func doRequest(ctx context.Context, method string, url string, headers map[strin
|
||||
result := response.ReadAll()
|
||||
resultStrut := &ghttp.DefaultHandlerResponse{}
|
||||
|
||||
gconv.Struct(result, &resultStrut)
|
||||
if err = gconv.Struct(result, &resultStrut); err != nil { // 修复:增加err检查
|
||||
return errors.New("响应解析失败: " + err.Error())
|
||||
}
|
||||
if resultStrut.Code == 200 || resultStrut.Code == 0 {
|
||||
gconv.Struct(resultStrut.Data, target)
|
||||
if err = gconv.Struct(resultStrut.Data, target); err != nil { // 修复:增加err检查
|
||||
return errors.New("数据解析失败: " + err.Error())
|
||||
}
|
||||
} else {
|
||||
err = errors.New(resultStrut.Message)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user