fix(proxy): 处理代理获取错误并更新测试策略

- 在获取代理失败时记录错误日志
- 修改测试中代理池初始化策略的API Key及参数
- 新增代理池测试用例验证获取代理功能
- 测试中添加日志输出以便调试代理信息
This commit is contained in:
danial
2025-12-08 16:18:18 +08:00
parent 24b823d701
commit 622aed094b
3 changed files with 22 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
package proxy_pool
import (
_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
_ "github.com/gogf/gf/contrib/nosql/redis/v2"
"github.com/gogf/gf/v2/os/gctx"
"github.com/gogf/gf/v2/os/gtime"
"kami/internal/service"
"kami/utility/utils"
"testing"
)
func Test_sProxyPool_GetProxyByOrderId(t *testing.T) {
service.RegisterProxyPool(New())
_ = service.ProxyPool().InitStrategy(gctx.GetInitCtx(), "http://api.dmdaili.com/dmgetip.asp?apikey=42bab0ac&pwd=1b567c2f286a08e391b5805565fa0882&getnum=1&httptype=1&geshi=1&fenge=3&fengefu=&operate=all", gtime.M)
proxy, err2 := service.ProxyPool().GetProxyByOrderId(t.Context(), utils.GenerateRandomUUID())
t.Log(proxy, err2)
}

View File

@@ -39,6 +39,9 @@ func NewClient(ctx context.Context) *Client {
"User-Agent": "Mozilla/5.0 (iPad; CPU OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Html5Plus/1.0 (Immersed/20) uni-app",
})
proxy, err2 := service.ProxyPool().GetProxyByOrderId(ctx, utils.GenerateRandomUUID())
if err2 != nil {
glog.Error(ctx, "获取代理失败", err2)
}
if err2 == nil && proxy.Host != "" {
glog.Info(ctx, "代理 ip", proxy.String())
client.SetProxy(proxy.String())

View File

@@ -45,7 +45,7 @@ func TestClient_LoginWithCaptcha(t *testing.T) {
func TestClient_CreateOrder(t *testing.T) {
service.RegisterProxyPool(proxy_pool.New())
_ = service.ProxyPool().InitStrategy(gctx.GetInitCtx(), "http://api.dmdaili.com/dmgetip.asp?apikey=1346ef8f&pwd=0a0cdef3a8c1874a3f6c88352df968b8&getnum=1&httptype=1&geshi=1&fenge=1&fengefu=&operate=all", gtime.M)
_ = service.ProxyPool().InitStrategy(gctx.GetInitCtx(), "http://api.dmdaili.com/dmgetip.asp?apikey=42bab0ac&pwd=1b567c2f286a08e391b5805565fa0882&getnum=1&httptype=1&geshi=1&fenge=3&fengefu=&operate=all", gtime.M)
client := NewClient(t.Context())
resp, err := client.Client.Get(t.Context(), "https://www.baidu.com")
t.Log(resp.ReadAllString(), err, resp.StatusCode, resp.ReadAllString())