Я новичок в android, и это мой первый проект на Android. Я борюсь с проблемой "проверки подлинности" более чем на один день. Я попробовал несколько вариантов, но никто из них не работал.
В принципе, я хочу вызвать API REST и получить ответ. Я уверен, что в API нет проблем, поскольку я использую тот же самый в другом приложении iOS.
Пропускаю заголовок авторизации, но все же аутентификация не отображается. Я нашел несколько вопросов о stackoverflow, связанных с этим, но некоторые из них не работали, а некоторые не имеют для меня смысла.
Я получаю код состояния 401
. Я знаю, это означает, что никакая аутентификация не прошла или не прошла, тогда они ошибаются. Здесь, я уверен, мои прошедшие правильные.
Ниже мой код:
try {
url = new URL(baseUrl);
}
catch (MalformedURLException me) {
Log.e(TAG, "URL could not be parsed. URL : " + baseUrl + ". Line : " + getLineNumber(), me);
me.printStackTrace();
}
try {
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod(method);
urlConnection.setConnectTimeout(TIMEOUT * 1000);
urlConnection.setChunkedStreamingMode(0);
// Set HTTP headers
String authString = "username:password";
String base64Auth = Base64.encodeToString(authString.getBytes(), Base64.DEFAULT);
urlConnection.setRequestProperty("Authorization", "Basic " + base64Auth);
urlConnection.setRequestProperty("Accept", "application/json");
urlConnection.setRequestProperty("Content-type", "application/json");
if (method.equals("POST") || method.equals("PUT")) {
// Set to true when posting data
urlConnection.setDoOutput(true);
// Write data to post to connection output stream
OutputStream out = urlConnection.getOutputStream();
out.write(postParameters.getBytes("UTF-8"));
}
try {
// Get response
in = new BufferedInputStream(urlConnection.getInputStream());
}
catch (IOException e) {
Log.e(TAG, "Exception in getting connection input stream. in : " + in);
e.printStackTrace();
}
// Read the input stream that has response
statusCode = urlConnection.getResponseCode();
Log.d(TAG, "Status code : " + statusCode);
}
catch (ProtocolException pe) {
pe.printStackTrace();
}
catch (IllegalStateException ie) {
ie.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
finally {
urlConnection.disconnect();
}
Посмотрите снимок экрана logcat:
Любая помощь будет оценена по достоинству. Спасибо.