Python调用Spotify API发POST队列歌曲请求报错缺少uri参数怎么办
问题原因
- 参数传递位置错误:Spotify的Add to Queue接口要求
uri为查询参数,需要拼接在URL的查询字符串中,你当前将参数放在请求体中传递,服务端无法读取到对应参数,因此返回必填参数缺失报错。 - 请求格式不匹配:你声明了
Content-Type: application/json请求头,但使用requests的data参数传参,data参数默认会将数据序列化为application/x-www-form-urlencoded格式,和声明的请求格式不符,进一步导致参数解析失败。
修复方案
将uri参数通过requests的params参数传递,移除不必要的请求体数据和Content-Type请求头,修复后的代码如下:
def queue_song(session_id): song_uri='spotify:track:5RwV8BvLfX5injfqYodke9' tokens = get_user_tokens(session_id) headers = { 'Authorization': "Bearer " + tokens.access_token, } url = BASE_URL + 'player/queue' params = { 'uri': song_uri } # 该POST接口无需请求体,参数全部放在查询字符串中传递 response = requests.post(url, headers=headers, params=params).json() print(response)
内容的提问来源于stack exchange,提问作者GJT Praveen
相关产品推荐
相关产品推荐

