【问题标题】:Spotify Web API not detecting body of POST requestSpotify Web API 未检测到 POST 请求的正文
【发布时间】:2021-06-20 20:44:06
【问题描述】:

我目前正在开发一个应用程序,它的一个功能是它可以将歌曲添加到用户的队列中。我为此使用了 Spotify API,这是我的代码:

async def request():
    ...
    uri = "spotify:track:5QO79kh1waicV47BqGRL3g" # temporary, can change later on
    header = {'Content-Type': 'application/x-www-form-urlencoded',
        'Authorization': "{} {}".format(TOKEN_TYPE, ACCESS_TOKEN)}
    data = {'uri': uri}
    resp = requests.post(url="https://api.spotify.com/v1/me/player/queue", data=data, headers=header)
    ...

我尝试了很多东西,但似乎无法理解为什么会收到错误 400(错误 400:缺少必需的参数 uri)。

【问题讨论】:

    标签: python post request spotify


    【解决方案1】:

    因此,您正在使用的 endpoint 的 Spotify API 建议所需的 uri 参数应作为 url 的一部分传递,而不是作为 data 对象传递。

    您可以尝试将您的 uri 添加到 url 的末尾,而不是 data = {'uri': uri}

    resp = requests.post(url="https://api.spotify.com/v1/me/player/queue?uri=?uri=spotify%3Atrack%3A5QO79kh1waicV47BqGRL3g", headers=header)
    

    我还建议使用 postman 或 insomnia 之类的软件来处理您发送的请求。

    【讨论】:

    • 这就像一个魅力,我会接受这个,非常感谢。在哪些情况下像我最初想的那样传递数据就足够了?我像这样通过 POST 请求获取访问令牌;我应该只在它明确表示要在请求正文中传递它时才这样做吗?
    • 是的。我还建议您检查 Spotipy,因为您使用的是 python。酷图书馆!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 2016-06-18
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    相关资源
    最近更新 更多