func (dir *DeviceInfoResult) FromResponse(resp *http.Response) error { err := common.RespToJson(resp, &dir) if err != nil { return err } dir.ResponseBase = common.NewResponseBase(resp) return nil }
// 更新设备 (设置的别名与标签) func (jpc *JPushClient) UpdateDevice(registrationId string, payload *device.DeviceUpdate) (*common.ResponseBase, error) { url := fmt.Sprintf(common.DEVICE_URL, registrationId) resp, err := jpc.http.PostJson(url, payload, jpc.headers) if err != nil { return nil, err } result := common.NewResponseBase(resp) return &result, nil }
// 成功: {"sendno":"18", "msg_id":"1828256757"} // 失败: {"msg_id": 1035959738, "error": {"message": "app_key does not exist", "code": 1008}} // // 所有的 HTTP API Response Header 里都加了三项频率控制信息: // // X-Rate-Limit-Limit: 当前 AppKey 一个时间窗口内可调用次数 // X-Rate-Limit-Remaining:当前时间窗口剩余的可用次数 // X-Rate-Limit-Reset: 距离时间窗口重置剩余的秒数 func (pr *PushResult) FromResponse(resp *http.Response) error { // 成功或失败时解析出返回的数据 // 实际上只有当 StatusCode = 200 时,才有 msg_id 和 sendno // 其他情况下只有 error 数据。 error 和 (msg_id, sendno) 不会同时存在 err := common.RespToJson(resp, &pr) if err != nil { return err } pr.ResponseBase = common.NewResponseBase(resp) return nil }