Я пытаюсь получить данные в формате jSON из Directus Api, и запросы работают нормально, если они сделаны из браузера. Однако, когда я отправляю те же самые запросы из моего приложения для Android (идентичные URL-адреса, с заголовком «Авторизация» или с параметрами) — запросы не выполняются с
java.io.FileNotFoundException и код ответа 405.
URL с параметрами: РАБОТАЕТ В БРАУЗЕРЕ
http://example.com/dev/public/_/items/cities/1?access_token=my_test_token
Тот же запрос с параметрами: FAILS IN ADNROID
Uri.Builder builder = new Uri.Builder();
builder.appendQueryParameter("access_token","my_test_token");
//..
URL url = new URL(serverURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.addRequestProperty("Content-Type", "application/json; UTF-8");
conn.addRequestProperty("Accept","application/json; charset=utf-8");
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();
URL без параметров, отправленный с заголовком «Authorization: Bearer my_test_token»: WORKS IN BROWSER
http://example.com/dev/public/_/items/cities/1
Тот же запрос с заголовком «Authorization: Bearer my_test_token»: FAILS IN ANDROID
URL url = new URL(serverURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.addRequestProperty("Authorization", "Bearer " + token);
conn.addRequestProperty("Content-Type", "application/json; UTF-8");
conn.addRequestProperty("Accept","application/json; charset=utf-8");
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();
Ни один из вышеперечисленных запросов (с параметрами или с «Авторизацией») не работает в Android. Есть ли разница между запросами браузера и Android? Почему тот же запрос не работает на Android? java.io.FileNotFoundException а работает в браузере? Кто-нибудь может помочь? Благодарю.
Я выяснил, что я использовал POST и пытался отправить поток вывода, когда разрешенный метод был GET, поэтому сервер вернул 405 ‘methodNotAllowed’.
Других решений пока нет …