Golang 操作uni app推送

文章描述了如何通过发送JSON数据并使用HTTPPOST方法调用API接口实现消息推送功能,包括SendMessageRequest,BindAliasRequest,UnBoundAliasRequest以及查询CID和别名的操作。
摘要由CSDN通过智能技术生成
// SendMsg 消息推送
func SendMsg(req *SendMessageRequest) (resp *CommonResponse, err error) {
   uri := "xxx"

   b, err := json.Marshal(req)
   if err != nil {
      return nil, fmt.Errorf("cant't marshal request :%v", err.Error())
   }
   header := http.Header{}
   header.Add("Content-type", "application/json")

   response, err := hClient.Post(uri, bytes.NewReader(b), header)
   if err != nil {
      return nil, fmt.Errorf("cant't send message :%v", err.Error())
   }

   data, err := io.ReadAll(response.Body)
   if err != nil {
      return nil, fmt.Errorf("cant't read response data :%v", err.Error())
   }
   if err = json.Unmarshal(data, &resp); err != nil {
      return nil, fmt.Errorf("cant't unmarshal data to resp :%v", err.Error())
   }
   if resp.ErrCode != 0 {
      return nil, fmt.Errorf("upsh err %v", resp.ErrCode)
   }
   return
}

// 别名绑定
func BindAlias(req []BindAliasRequest) (resp *CommonResponse, err error) {
   uri := "xxx"
   b, err := json.Marshal(req)
   if err != nil {
      return nil, fmt.Errorf("cant't marshal request :%v", err.Error())
   }
   header := http.Header{}
   header.Add("Content-type", "application/json")

   response, err := hClient.Post(uri, bytes.NewReader(b), header)
   if err != nil {
      return nil, fmt.Errorf("cant't send message :%v", err.Error())
   }

   data, err := io.ReadAll(response.Body)
   if err != nil {
      return nil, fmt.Errorf("cant't read response data :%v", err.Error())
   }

   if err = json.Unmarshal(data, &resp); err != nil {
      return nil, fmt.Errorf("cant't unmarshal data to resp :%v", err.Error())
   }
   if resp.ErrCode != 0 {
      return nil, fmt.Errorf("upsh err %v", resp.ErrCode)
   }
   return
}

// 批量解绑
func UnBoundAlias(req []BindAliasRequest) (resp *CommonResponse, err error) {
   uri := "xxx"
   b, err := json.Marshal(req)
   if err != nil {
      return nil, fmt.Errorf("cant't marshal request :%v", err.Error())
   }
   header := http.Header{}
   header.Add("Content-type", "application/json")

   fmt.Println(string(b))
   response, err := hClient.Post(uri, bytes.NewReader(b), header)
   if err != nil {
      return nil, fmt.Errorf("cant't send message :%v", err.Error())
   }
   fmt.Println("resp:", response)

   data, err := io.ReadAll(response.Body)
   if err != nil {
      return nil, fmt.Errorf("cant't read response data :%v", err.Error())
   }

   if err = json.Unmarshal(data, &resp); err != nil {
      return nil, fmt.Errorf("cant't unmarshal data to resp :%v", err.Error())
   }
   if resp.ErrCode != 0 {
      return nil, fmt.Errorf("upsh err %v", resp.ErrCode)
   }
   return
}

// 根据cid查询别名
func GetAliasByCid(req *AliasByCid) (resp *CommonResponse, err error) {
    uri := "xxx"
   b, err := json.Marshal(req)
   if err != nil {
      return nil, fmt.Errorf("cant't marshal request :%v", err.Error())
   }
   header := http.Header{}
   header.Add("Content-type", "application/json")

   response, err := hClient.Post(uri, bytes.NewReader(b), header)
   if err != nil {
      return nil, fmt.Errorf("cant't send message :%v", err.Error())
   }
   fmt.Println("resp:", response)

   data, err := io.ReadAll(response.Body)
   if err != nil {
      return nil, fmt.Errorf("cant't read response data :%v", err.Error())
   }

   if err = json.Unmarshal(data, &resp); err != nil {
      return nil, fmt.Errorf("cant't unmarshal data to resp :%v", err.Error())
   }
   if resp.ErrCode != 0 {
      return nil, fmt.Errorf("upsh err %v", resp.ErrCode)
   }
   return
}

// 根据别名查询cid
func GetCidByAlias(req *CidByAlias) (resp *CommonResponse, err error) {
    uri := "xxx"
   b, err := json.Marshal(req)
   if err != nil {
      return nil, fmt.Errorf("cant't marshal request :%v", err.Error())
   }
   header := http.Header{}
   header.Add("Content-type", "application/json")

   response, err := hClient.Post(uri, bytes.NewReader(b), header)
   if err != nil {
      return nil, fmt.Errorf("cant't send message :%v", err.Error())
   }
   fmt.Println("resp:", response)

   data, err := io.ReadAll(response.Body)
   if err != nil {
      return nil, fmt.Errorf("cant't read response data :%v", err.Error())
   }

   if err = json.Unmarshal(data, &resp); err != nil {
      return nil, fmt.Errorf("cant't unmarshal data to resp :%v", err.Error())
   }
   if resp.ErrCode != 0 {
      return nil, fmt.Errorf("upsh err %v", resp.ErrCode)
   }
   return
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值