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

将曲目添加到播放列表SoundCloud API,api,windows-phone-8,httpclient,soundcloud,Api,Windows Phone 8,Httpclient,Soundcloud,在我的Windows Phone应用程序中,我正在使用以下代码向播放列表添加曲目(即向播放列表/id端点发出PUT请求) 其中“数据”是JSON数据,格式为: {"playlist":{"tracks":["TrackId(to be added)"]}} {"playlist":{"tracks":[{"id":"__"}, {"id":"__"}, {"id":"__"}]}} 上述代码返回“OK”(200)响应,但曲目未添加到播放列表中 我做错了什么?坚持了两天。提前谢

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

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

    {"playlist":{"tracks":["TrackId(to be added)"]}}
    {"playlist":{"tracks":[{"id":"__"}, {"id":"__"}, {"id":"__"}]}}
上述代码返回“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数据格式不正确。 “数据”必须采用以下格式:

    {"playlist":{"tracks":["TrackId(to be added)"]}}
    {"playlist":{"tracks":[{"id":"__"}, {"id":"__"}, {"id":"__"}]}}
在这里,id值对必须存在

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

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


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

对于此PUT请求,除了(要添加的曲目的)trackId之外,我还需要在请求正文中以{playlist:{tracks:[]}的形式发送(播放列表中已经存在的曲目的)所有其他trackId吗。在尝试了这种方法之后,我得到了422(不可处理实体)。另外,在您的回答中:“s”是trackId(如果我没有弄错的话),但是如果您可以详细说明的话,nameValuePair中的名称是什么我想我也遇到了类似的问题,这就是为什么我最终更换了所有的trackid。