mirror of
https://github.com/infinite-iroha/touka.git
synced 2026-06-13 15:47:38 +08:00
fix: Client()/HTTPC() 优先使用 per-request HTTPClient 字段
修复 Gemini 审查意见:中间件设置的自定义 HTTPClient 不再被绕过。 Client() 和 HTTPC() 现在优先使用 Context.HTTPClient, 仅在未设置时回退到 Engine 默认实例。 Alina Agent生成
This commit is contained in:
parent
6006267d25
commit
d8a5f200c1
1 changed files with 11 additions and 3 deletions
14
context.go
14
context.go
|
|
@ -864,19 +864,27 @@ func (c *Context) GetErrors() []error {
|
|||
return c.Errors
|
||||
}
|
||||
|
||||
// Client 返回 Engine 提供的 HTTPClient
|
||||
// 方便在请求处理函数中进行出站 HTTP请求
|
||||
// Client 返回当前请求的 HTTPClient
|
||||
// 如果请求处理函数或中间件设置了自定义 HTTPClient,返回该实例;
|
||||
// 否则返回 Engine 提供的默认实例
|
||||
//
|
||||
// Deprecated: 使用 HTTPC() 替代,新方法会自动关联请求 Context
|
||||
func (c *Context) Client() *httpc.Client {
|
||||
if c.HTTPClient != nil {
|
||||
return c.HTTPClient
|
||||
}
|
||||
return c.engine.HTTPClient
|
||||
}
|
||||
|
||||
// HTTPC 返回自动关联请求 Context 的 HTTP 客户端
|
||||
// 当请求被取消时,通过此客户端发起的出站请求也会自动取消
|
||||
func (c *Context) HTTPC() *contextHTTPClient {
|
||||
client := c.HTTPClient
|
||||
if client == nil {
|
||||
client = c.engine.HTTPClient
|
||||
}
|
||||
return &contextHTTPClient{
|
||||
client: c.engine.HTTPClient,
|
||||
client: client,
|
||||
ctx: c.ctx,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue