事情的起因是:有一个创建日程的接口,创建人和参与人,都需要websocket推送一条日程更新信息;现在要测试这个推送名单是否正确,所以要用python写一个创建日程的post请求,指定参与者,即下面代码中的attendees。
开始写好代码的时候,没有添加参与人,即 "attendees": [],跑下来没毛病,日程创建成功!
于是,接下来就添加了参与人,准备做最后一件事情,校验ws收到消息的名单是否和参与人一致;attendees参数如下:
"attendees": [{"cp_id": 154}, {"cp_id": 454}, {"cp_id": 356}]
问题来了!报错了!!!
content: {'code': 40099, 'msg': 'Invalid argument supplied for foreach()(0)', 'data': []}
只是添加上了attendees的值而已,刚才还能请求成功呢?
参数格式也是对的啊,把body拷贝到Apifox发送,日程是能创建成功的...... 于是我,除了傻眼只有迷茫好吗!先贴上代码:
def create_schedule(instance_id, cp_id):
url = "http://cpapi.st1.2345.cn/widget/calendar_b/instances/%s/createSchedule?tdusername=&tdcpid=%s" % (instance_id, cp_id)
body = {
"summary": "test",
"start_date": "2020-12-16 09:00",
"end_date": "2020-12-17 10:00",
"location": "",
"repeat_type": -1,
"remind_before_event_secs": 900,
"attendees": [{"cp_id": 154}, {"cp_id": 454}, {"cp_id": 356}],
"origin_start_date": "2020-12-16 09:00:00",
"description": ""
}
response = requests.post(url,data=body)
content = response.json()
print("content:", content)