Получен формат html вместо json - PullRequest
0 голосов
/ 05 августа 2020

SERVER_URL = "http://api.androidhive.info/json/movies.json",

URL = "https://api.androidhive.info/contacts/".

SERVER_URL это адрес, откуда я хочу получить json данные. URL - это пример адреса. Я не меняю код, я меняю только адрес. Когда я меняю его на url, он работает нормально, но когда я перехожу на SERVER_URL, я получаю данные в формате html. У кого-нибудь есть объяснение, пожалуйста.

public class JSONAsyncTask extends AsyncTask<Void, Void, Boolean> {

        private static final String SERVER_URL = "http://api.androidhive.info/json/movies.json";
        private static final String url = "https://api.androidhive.info/contacts/";
        private static final String TAG = "JSONAsyncTask";

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected Boolean doInBackground(Void... arg0) {
            HttpHandler sh = new HttpHandler();

            // Making a request to url and getting response
            String jsonStr = sh.makeServiceCall(SERVER_URL);
            [![enter image description here][1]][1]Log.i(TAG, "testers url type - " +url+": "+ "jsonStr\n" + jsonStr);

            
            if (jsonStr != null) {
                try {
                    JSONObject jsonObj = new JSONObject(jsonStr);
                } catch (Exception e) {
                    e.printStackTrace();
                    Log.i(TAG, "testers: Exception " + e);
                }
            }
            return null;
        }
        

        @Override
        protected void onPostExecute(Boolean aBoolean) {
            super.onPostExecute(aBoolean);
        }
    }```


  [1]: https://i.stack.imgur.com/Hypuq.jpg

1 Ответ

1 голос
/ 06 августа 2020

Вероятно, вы получили код ответа HTTP 301 для перенаправления с http:// на https://.

RFC7231 действительно указывает, что ответ сервера может содержать гиперссылки на новые URI, вероятно, в форма meta refre sh; и пользовательские агенты или клиенты могут выбрать следовать перенаправлениям или нет, следовательно, что у вас здесь.

В вашем случае вы, вероятно, могли бы обрабатывать перенаправления из своего класса HttpHandler (т.е. 1013 *) или просто используйте https:// версию URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...