package test import ( "bytes" "encoding/json" "fmt" "io" "net/http" "testing" "git.x2erp.com/qdy/go-base/config" "git.x2erp.com/qdy/go-base/ctx" "git.x2erp.com/qdy/go-svc-core/internal/model" ) func TestETLConfigAPI_Simple(t *testing.T) { fmt.Println("=== 简单POST测试 ===") // 1. 创建测试数据(赋值) etlConfig := model.NewETLConfig(ctx.GetContextTest(), config.AgentDBArchivesId, config.DorisDatabaseName, "a_sku") sql := `SELECT CLOTHING_ID,CLOTHING_YEAR,CLOTHING_NAME FROM ( SELECT a.*, ROWNUM as rn FROM ( SELECT CLOTHING_ID,CLOTHING_YEAR,CLOTHING_NAME FROM X6_STOCK_DEV.A3_CLOTHING ORDER BY CLOTHING_ID ) a WHERE ROWNUM <= :1 ) WHERE rn > :2` etlConfig.AgentFullQuerySQL = sql fmt.Printf("测试数据: %v\n", etlConfig) // 2. 转换为JSON jsonData, err := json.Marshal(etlConfig) if err != nil { fmt.Printf("JSON转换错误: %v\n", err) return } fmt.Printf("JSON数据: %s\n", string(jsonData)) // 3. 创建POST请求 url := "http://localhost:9010/api/etl/config" // 你的服务端口 // 创建请求 req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData)) if err != nil { fmt.Printf("创建请求失败: %v\n", err) return } // 设置请求头 req.Header.Set("Content-Type", "application/json") req.Header.Set("Authorization", "Bearer 123") // 这里放你的真实token // 创建HTTP客户端并发送请求 client := &http.Client{} resp, err := client.Do(req) if err != nil { fmt.Printf("POST请求失败: %v\n", err) return } defer resp.Body.Close() // 4. 读取响应 body, err := io.ReadAll(resp.Body) if err != nil { fmt.Printf("读取响应失败: %v\n", err) return } // 5. 打印结果 fmt.Printf("状态码: %d\n", resp.StatusCode) fmt.Printf("响应: %s\n", string(body)) }