1

soundcloudのドキュメントには、Javaラッパーを使用してプレイリストを更新するためのサンプルがありません。このようなことを試しましたが、トラックが更新されませんでした。また、エラーメッセージは返されません。

HttpResponse resp = wrapper
  .put(Request.to("/me/playlists/123")
  .with("playlist[title]", "updated title", "playlist[tracks]", "[
    {id: 10001},
    {id: 10002}
  ]"));

何か案は?

4

1 に答える 1

3

問題は、Rails スタイルのフォーム パラメータと JSON を組み合わせて使用​​していることです。

次の 2 つのオプションがあります。

1) フォーム パラメータのみを使用します。

HttpResponse resp = api.put(Request.to("/playlists/123")                          
        .with("playlist[title]", "updated title")                         
        .with("playlist[tracks][][id]", 10001)     
        .with("playlist[tracks][][id]", 10002)); 

2) プレイリスト データを JSON として送信します。

private void updatePlaylist() {
    JSONObject json = createJSONPlaylist("updated title", 10001, 10002);
    HttpResponse resp = api.put(Request.to("/playlists/123")                     
        .withContent(json.toString(), "application/json"));
}

private JSONObject createJSONPlaylist(String title, long... trackIds) throws JSONException { 
    JSONObject playlist = new JSONObject();                                                  
    playlist.put("title", title);                                                            

    JSONObject json = new JSONObject();                                                      
    json.put("playlist", playlist);                                                          

    JSONArray tracks = new JSONArray();                                                      
    playlist.put("tracks", tracks);                                                          

    for (long id : trackIds) {                                                               
        JSONObject track = new JSONObject();                                                 
        track.put("id", id);                                                                 
        tracks.put(track);                                                                   
    }                                                                                        
    return json;                                                                             
}                                                                                            

ラッパー内のテストをチェックして、実際の動作を確認してください。

于 2013-02-13T15:26:09.653 に答える