| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package test
-
- import (
- "bytes"
- "encoding/json"
- "fmt"
- "io"
- "net/http"
- "testing"
- "time"
-
- "git.x2erp.com/qdy/go-base/types"
- )
-
- func TestSendMessage(t *testing.T) {
-
- queryRequest := getQueyRequest()
-
- messageRequest := types.MessageRequest{
- ChannelName: "v_bdx_channel",
- ExchangeName: "v_bdx_exchange",
- RoutingKey: "v-bdx.count",
- Message: queryRequest,
- ContentType: "json",
- }
-
- // 2. 将数据转换为JSON
- jsonData, err := json.Marshal(messageRequest)
- if err != nil {
- fmt.Printf("JSON编码失败: %v\n", err)
- return
- }
-
- // 3. 发送HTTP POST请求
- url := "http://localhost:9090/api/rabbitmq/message/send"
-
- POSTMessage(jsonData, url)
-
- }
-
- func getQueyRequest() types.QueryRequest {
- sql := `SELECT * FROM (SELECT a.*, ROWNUM rn FROM (SELECT CLOTHING_ID, CLOTHING_NAME FROM X6_STOCK_DEV.A3_CLOTHING ORDER BY CLOTHING_ID) a WHERE ROWNUM <= :1) WHERE rn > :2
- `
-
- // // 3个参数
- params := []interface{}{
- 10,
- 0,
- }
-
- return types.QueryRequest{
- SQL: sql,
- PositionalParams: params,
- WriterHeader: false,
- }
- }
-
- func POSTMessage(jsonData []byte, url string) {
-
- // 如果服务端需要认证,添加JWT token
- token := "123" // 替换为实际的JWT token
-
- 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")
- if token != "" {
- req.Header.Set("Authorization", "Bearer "+token)
- }
-
- // 4. 发送请求并获取响应
- client := &http.Client{
- Timeout: 10 * time.Second,
- }
-
- resp, err := client.Do(req)
- if err != nil {
- fmt.Printf("请求失败: %v\n", err)
- return
- }
- defer resp.Body.Close()
-
- // 5. 读取响应
- body, err := io.ReadAll(resp.Body)
- if err != nil {
- fmt.Printf("读取响应失败: %v\n", err)
- return
- }
-
- // 6. 输出结果
- fmt.Printf("状态码: %d\n", resp.StatusCode)
- fmt.Printf("响应头: %v\n", resp.Header)
- fmt.Printf("响应体: %s\n", string(body))
- }
|