Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

my_create_exchange_test.go 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package test
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "fmt"
  6. "io"
  7. "net/http"
  8. "testing"
  9. "time"
  10. )
  11. type ExchangeRequest struct {
  12. ChannelName string `json:"channel_name"`
  13. ExchangeName string `json:"exchange_name"`
  14. ExchangeType string `json:"exchange_type"`
  15. Durable bool `json:"durable"`
  16. Internal bool `json:"internal"`
  17. AutoDelete bool `json:"auto_delete"`
  18. NoWait bool `json:"no_wait"`
  19. Arguments map[string]string `json:"arguments"`
  20. }
  21. func TestCreateexchange(t *testing.T) {
  22. // 1. 准备请求数据
  23. requestData := ExchangeRequest{
  24. ChannelName: "test_channel",
  25. ExchangeName: "test_exchange",
  26. ExchangeType: "direct", // direct, fanout, topic, headers
  27. Durable: true,
  28. Internal: false,
  29. AutoDelete: false,
  30. NoWait: false,
  31. Arguments: map[string]string{
  32. "x-delayed-type": "direct",
  33. },
  34. }
  35. // 2. 将数据转换为JSON
  36. jsonData, err := json.Marshal(requestData)
  37. if err != nil {
  38. fmt.Printf("JSON编码失败: %v\n", err)
  39. return
  40. }
  41. // 3. 发送HTTP POST请求
  42. url := "http://localhost:9090/api/rabbitmq/exchange/create"
  43. // 如果服务端需要认证,添加JWT token
  44. token := "your-jwt-token-here" // 替换为实际的JWT token
  45. req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
  46. if err != nil {
  47. fmt.Printf("创建请求失败: %v\n", err)
  48. return
  49. }
  50. // 添加请求头
  51. req.Header.Set("Content-Type", "application/json")
  52. if token != "" {
  53. req.Header.Set("Authorization", "Bearer "+token)
  54. }
  55. // 4. 发送请求并获取响应
  56. client := &http.Client{
  57. Timeout: 10 * time.Second,
  58. }
  59. resp, err := client.Do(req)
  60. if err != nil {
  61. fmt.Printf("请求失败: %v\n", err)
  62. return
  63. }
  64. defer resp.Body.Close()
  65. // 5. 读取响应
  66. body, err := io.ReadAll(resp.Body)
  67. if err != nil {
  68. fmt.Printf("读取响应失败: %v\n", err)
  69. return
  70. }
  71. // 6. 输出结果
  72. fmt.Printf("状态码: %d\n", resp.StatusCode)
  73. fmt.Printf("响应头: %v\n", resp.Header)
  74. fmt.Printf("响应体: %s\n", string(body))
  75. }