【问题标题】:Android Spotify api respone 400Android Spotify api 响应 400
【发布时间】:2018-06-05 11:16:09
【问题描述】:

目标:在 onClick() 之后创建一个名为 MonthlyTest 的播放列表

代码:

    public void createPlaylist(){
    String CREATE_PLAYLIST = "https://api.spotify.com/v1/users/"+username+"/playlists";
    JsonObjectRequest jsonRequest = new JsonObjectRequest
            (Request.Method.POST, CREATE_PLAYLIST, null, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        MONTHLY_PLAYLIST_ID = response.getJSONArray("items").getJSONObject(0).getString("uri");
                        MONTHLY_PLAYLIST_NAME = response.getJSONArray("items").getJSONObject(0).getString("name");
                        Log.i("MainActivity", response.toString(4));
                    } catch (JSONException e) {
                        Log.e("MainActivity", "Error whilst parsing JSONObject");
                        e.printStackTrace();
                    }

                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.e("MainActivity", "Error whilst creating playlist");
                    error.printStackTrace();

                }
            }) {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<>();
            headers.put("Authorization", "Bearer " + token);
            return headers;
        }

        @Override
        public Map<String, String> getParams() throws AuthFailureError {
            HashMap<String, String> params = new HashMap<>();
            params.put("name", MONTHLY_PLAYLIST);
            params.put("description", "Monthly playlist with my current favourite songs.");
            params.put("public", "true");
            return params;
        }
    };
    requestQueue.add(jsonRequest);
}

错误:

06-05 12:04:49.666 7826-7846/applicationname.companydomain.simpleapp E/Volley: [275] BasicNetwork.performRequest: Unexpected response code 400 for https://api.spotify.com/v1/users/iwishiwasaneagle/playlists
06-05 12:04:49.666 7826-7826/applicationname.companydomain.simpleapp E/MainActivity: Error whilst creating playlist
06-05 12:04:49.666 7826-7826/applicationname.companydomain.simpleapp W/System.err: com.android.volley.ClientError
06-05 12:04:49.666 7826-7826/applicationname.companydomain.simpleapp W/System.err:     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:190)
06-05 12:04:49.666 7826-7826/applicationname.companydomain.simpleapp W/System.err:     at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:120)
06-05 12:04:49.666 7826-7826/applicationname.companydomain.simpleapp W/System.err:     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:87)

使用https://developer.spotify.com/documentation/web-api/reference/playlists/create-playlist/ 作为指导,我几乎可以肯定我已经包含了所有数据,但我找不到资源来告诉我我做错了什么。我已经成功实现了一些来自 SpotifyWebAPI 的 GET。

【问题讨论】:

    标签: java android rest api spotify


    【解决方案1】:

    问题已通过以下方式解决:Android Volley: POST request - req.body inside of NodeJS REST API empty

    getBody() 必须被覆盖,而不是 getParams(),因为它实际上永远不会被请求调用。

    【讨论】:

      猜你喜欢
      • 2017-11-22
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多