代码之家  ›  专栏  ›  技术社区  ›  vishu

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

  •  0
  • vishu  · 技术社区  · 10 年前

    在我的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();
                }
    

    其中“data”是JSON数据,格式为:

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

    上述代码返回“OK”(200)响应,但曲目未添加到播放列表中!

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

    2 回复  |  直到 10 年前
        1
  •  1
  •   cucko    10 年前

    我使用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);
    
        2
  •  1
  •   vishu    10 年前

    问题是(请求主体的)JSON数据格式不正确。 “数据”的格式必须为:

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

    这里,id值对必须存在于

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

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

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