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

时间:2015-03-03 14:45:52

标签: api windows-phone-8 httpclient soundcloud

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

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

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

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

以上代码返回"确定"(200)响应,但该曲目未添加到播放列表中!

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

2 个答案:

答案 0 :(得分:1)

我使用Put替换set中的track 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);

答案 1 :(得分:1)

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

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

此处必须存在

的id-value对
  • 播放列表中已存在的每个曲目,以及

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

(请记住,这是一个PUT请求。因此,您需要更新数据,即更新"跟踪""播放列表的属性")