Как вызвать API данных Youtube через HTTPUrlConnection в Android с использованием заголовков? - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь разработать часть своего приложения, в которой я хочу получить информацию о видео по ключевому слову. Я использую API списка поиска. Я думаю, что у меня есть проблема с авторизацией. Я получаю 401. Я попытался передать свои данные авторизации.

Я попробовал следующий код, пройдя через несколько ресурсов в сети, и сейчас получаю исключение java.io.FileNotFoundException в строке, в которой я получаю поток ввода. Код подключения, который я получаю - 401.

Данный код находится в doInBackground AsyncTask.

String ytres="";
        URL url;
        HttpURLConnection urlConnection = null;
        try {
            Log.d("youtubedata","a1");
            url = new URL("https://www.googleapis.com/youtube/v3/search?part=id&q=queen%20bohemian");
            Log.d("youtubedata","a2");
            Log.d("youtubedata","a");
            urlConnection = (HttpURLConnection) url
                    .openConnection();
            urlConnection.setRequestMethod("GET");
            urlConnection.setRequestProperty ("Authorization", "Bearer MYAPIKEY");
            urlConnection.setRequestProperty ("Accept", "application/json");
            Log.d("youtubedatanum",Integer.toString(urlConnection.getResponseCode()));
            InputStream in = urlConnection.getInputStream();

        InputStreamReader isw = new InputStreamReader(in);

        int data = isw.read();
        while (data != -1) {
            char current = (char) data;
            data = isw.read();
            ytres=ytres+current;
            System.out.print(current);
        }
        Log.d("youtubedata",ytres);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (urlConnection != null) {
            urlConnection.disconnect();
        }
    }
    return ytres;

Я подозреваю, что проблема в том, как я передал свой ключ API.

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Пожалуйста, просмотрите документы API на Вызов API и на Конечная точка поиска .

Вы увидите, что ваш URL не содержит необходимый ключ API, передаваемый как параметр key .

Возможно, стоит откопать собственную примерную реализацию Java от Google по адресу Search.java . Однако этот код из-за используемого им уровня абстракции библиотеки не оказывает немедленной помощи, поскольку затеняет то, как клиент должен работать напрямую с API.

0 голосов
/ 18 апреля 2019

Для API данных You-tube Ошибка 401

Возможная проблема для неавторизованных (401) может быть

  • авторизация Требуется
  • youtubeSignupRequired

Проверка ошибки API данных You-tube doc Здесь .

Также подтвердите, что вы выполнили ЭТИ шаги для интеграции API.

Пример кода API вы можете найти Здесь

Надеюсь, это поможет вам.

...