Почему тот же http-запрос работает в браузере и не выполняется при отправке из моего приложения для Android?

Я пытаюсь получить данные в формате 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 а работает в браузере? Кто-нибудь может помочь? Благодарю.

1

Решение

Я выяснил, что я использовал POST и пытался отправить поток вывода, когда разрешенный метод был GET, поэтому сервер вернул 405 ‘methodNotAllowed’.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]