У меня есть Api, который отлично работает на почтальоне, но не работает в моем коде с использованием модернизации. Аутентификация работает хорошо, когда у меня нет параметров, переданных в теле, но в других случаях я получаю ошибку 401
Я использовал модификацию раньше, ту же ошибку, затем я изменил на залп, но ошибка сохраняется. Но когда я тестирую с почтальоном, все работает нормально. Примечание: TOKEN хорошо работает с API для вызова, который имеет какой-либо параметр тела
StringRequest request = new StringRequest(
Request.Method.POST, Config.API_URL_DETAILS
, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (!response.equals(null)) {
Log.i("tag", "lii"+response);
} else {
Log.i("tag", "lii Data Null");
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("error is ", "" + error);
error.printStackTrace();
}
}) {
//This is for Headers If You Needed
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/x-www-form-urlencoded");
params.put("Authorization", TOKEN);
params.put("Accept", "application/json");
return params;
}
@Override
public String getBodyContentType() {
return "application/x-www-form-urlencoded; charset=UTF-8";
}
//Pass Your Parameters here
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("event_id", "30");
params.put("longitude", String.valueOf(3.4));
params.put("latitude", String.valueOf(6.6063));
return params;
}
};
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
queue.add(request);
Я ожидаю, что на выходе будет ответ API, но на выходе будет код ответа 401. com.android.volley. AuthFailureError.