将曲目添加到播放列表 SoundCloud API

Add track to playlist SoundCloud API

在我的 Windows Phone 应用程序中,我使用以下代码将曲目添加到播放列表(即对 playlists/id 端点的 PUT 请求)

    using (HttpClient httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(AccessToken);
                HttpResponseMessage response = await httpClient.PutAsync(endpoint, new StringContent(data));
                response.EnsureSuccessStatusCode();
            }

其中 "data" 是 JSON 形式的数据:

    {"playlist":{"tracks":["TrackId(to be added)"]}}

上面的代码 returns "OK"(200) 响应但曲目未添加到播放列表!

我做错了什么?坚持了两天。提前致谢!

我使用 Put 来替换集合中的曲目 ID。 这是示例代码

for (String s : trackIds)
    nameValuePairs.add(new BasicNameValuePair("playlist[tracks][][id]", s.trim()));

String url = "https://api.soundcloud.com/playlists/" + setId + ".json";
httpPut(url, nameValuePairs);

问题是 JSON 数据(请求正文)的格式不正确。 "data" 必须采用以下形式:

    {"playlist":{"tracks":[{"id":"__"}, {"id":"__"}, {"id":"__"}]}}

此处必须存在 ID-值对

  • 播放列表中已存在的每首曲目,以及

  • 您要添加到播放列表的曲目

(请记住,这是一个 PUT 请求。因此,您需要更新数据,即更新 "playlist" 的 "tracks" 属性)