put.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package clt_client
  2. import (
  3. "bytes"
  4. "errors"
  5. "github.com/sirupsen/logrus"
  6. "io"
  7. "lc/common/mqtt"
  8. "net/http"
  9. )
  10. // SwitchProgram 切换节目
  11. func (c cltclient) SwitchProgram(m mqtt.Message, baseurl string) {
  12. var p Programm
  13. m.PayloadJSON(&p)
  14. url := baseurl + "vsns/sources/lan/vsns/" + p.Name + ".vsn/activated"
  15. request, err := http.NewRequest("PUT", url, nil)
  16. if err != nil {
  17. logrus.Errorf("Newrequest出错:%v", err)
  18. return
  19. }
  20. request.Header.Set("Accept", "application/json")
  21. resp, err := c.HttpClient.Do(request)
  22. if err != nil {
  23. logrus.Errorf("http错误%v", err)
  24. return
  25. }
  26. defer resp.Body.Close()
  27. io.ReadAll(resp.Body)
  28. }
  29. // brightness
  30. func (c cltclient) CommonPut(payload []byte, url string) error {
  31. var r io.Reader
  32. if payload == nil {
  33. return errors.New("func CommonPut error PUT操作消息体不能为空!")
  34. } else {
  35. r = bytes.NewReader(payload)
  36. }
  37. req, err := http.NewRequest("PUT", url, r)
  38. req.Header.Add("Content-Type", "application/json")
  39. resp, err := c.HttpClient.Do(req)
  40. if err != nil {
  41. return err
  42. }
  43. defer resp.Body.Close()
  44. io.ReadAll(resp.Body)
  45. return nil
  46. }