JSON авторизация - PullRequest
       3

JSON авторизация

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

В настоящее время я работаю над проектом, в котором я не хочу получать данные JSON из сети вещей.У них есть интеграция под названием «Хранение данных», которая отправляет нас в другой домен, где были включены некоторые остальные ссылки API.Они выглядят так:

https: //---.---thethingsnetwork.org/api/v2/devices

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

Это код, который я использовал для извлечения данных из незащищенных API, но я не могу получить доступ к моему защищенному API с помощью этой программы.Программа говорит «Построить успешно», но ничего не печатает.

public static void main(String[] args) {

        String jsonText = "";

        try {
            String token = "---";
            String encoded = Base64.getEncoder().encodeToString((token).getBytes(StandardCharsets.UTF_8));

            URL url = new URL("https://---.thethingsnetwork.org/api/v2/devices");

                        HttpsURLConnection http = (HttpsURLConnection) url.openConnection();

        http.setRequestMethod("GET");
        http.setRequestProperty("Content-length", "0");
        http.setUseCaches(false);
        http.setAllowUserInteraction(false);
        http.connect();

            InputStream im = hr.getInputStream();
            StringBuilder sb = new StringBuilder();
            BufferedReader br = new BufferedReader(new InputStreamReader(im));

            //Object obj = new JSONParser().parse(im);
            String line = br.readLine();

            while (line != null) {
                sb.append(line + "\n");
                System.out.println("line: " + line);
                jsonText = sb.toString();

                bw.write(line);
                bw.newLine();
                line = br.readLine();
            }

        } catch (Exception e) {
          System.out.println("Something went wrong");
        }
    }

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

1 Ответ

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

Кажется, URL Https, к которому вы обращаетесь, не имеет сертификата ssl. Так что установите его, и вы сможете получить доступ к его содержимому.

ПРИМЕЧАНИЕ. Используемый вами URL-адрес HTTPS должен иметь сертификат ssl. Если URL-адрес, к которому вы обращаетесь, не имеет сертификата, то сначала вы должны загрузить сертификат. Вы можете использовать хранилища ключей, используя команду

java-home/bin/keytool -genkey -alias server-alias -keyalg RSA -keypass changeit
-storepass changeit -keystore keystore.jks

Все в твоем коде мне кажется правильным.

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