Как отладить «Ваш идентификатор пользователя недействителен. Пожалуйста, используйте правильную комбинацию ключа API и идентификатора пользователя» в Android? - PullRequest
0 голосов
/ 25 сентября 2018

Я новичок в Android, я получаю это в своем logcat:

"status": false, "msg": "Ваш идентификатор пользователя недействителен. Пожалуйста, используйте действительный ключ API иСочетание идентификатора пользователя "

Код:

public class MainActivity extends AppCompatActivity {
String url = "https://json.astrologyapi.com/v1/monthly_panchang";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    StringRequest postRequest = new StringRequest(Request.Method.POST, url,
            new Response.Listener<String>()
            {
                @Override
                public void onResponse(String response) {
                    // response
                    Log.d("Response", response);
                }
            },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // error
                    Log.d("Error.Response", error.toString());
                }
            }

    ){
        @Override
        protected Map<String,String> getParams(){
            Map<String,String> params = new HashMap<String, String>();
            params.put("Content-Type","application/x-www-form-urlencoded");
            params.put("username","602845");
            params.put("password","dea8c55922286904e4c34757ed1fcf09");
            return params;
        }
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String,String> params = new HashMap<String, String>();
            params.put("Authorization", "Token <token>");
            return params;
        }
    };
    RequestQueue requestQueue= Volley.newRequestQueue(this);
    requestQueue.add(postRequest);

}
}

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> headers = new HashMap<>();
            headers.put("Username", "602826");
            headers.put("Password", "cb");
            String credentials = "602826" + ":" + "cb";
            String auth = "Basic "
                    + Base64.encodeToString(credentials.getBytes(),
                    Base64.NO_WRAP);
            headers.put("Authorization", auth);
            // headers.put("Content-Type", "application/json");
            return headers;

        }

Я решил свою проблему.

0 голосов
/ 25 сентября 2018

Вы должны поставить свой токен авторизации API здесь:

params.put("Authorization", "Token <token>");
...