HTTPUrlConnection возвращает 400 для Linux, но работает на Windows - PullRequest
3 голосов
/ 23 января 2020

Я делаю запрос на дергание API со следующим кодом

    URL url = new URL("https://api.twitch.tv/kraken/streams/?channel=" + channelID)
    connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");
    connection.addRequestProperty("Accept", "application/vnd.twitchtv.v5+json");
    connection.addRequestProperty("Client-ID", clientID);

    connection.setUseCaches(false);
    connection.setDoInput(true);
    InputStream inputStream = connection.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
    String line;
    StringBuilder response = new StringBuilder();
    while ((line = br.readLine()) != null) {
        response.append(line);
        response.append("\r");
    }
    br.close();
    return response.toString();

Это дает правильный ответ на windows, однако, когда я запускаю его на моем Raspberry PI, он получает ответ 400. Я нашел похожий вопрос о переполнении стека Я пытался установить параметры прокси с этим кодом

    System.setProperty("java.net.useSystemProxies", "true");

Однако это не помогло исправить этот запрос, есть идеи, что вызывает это?

1 Ответ

0 голосов
/ 25 января 2020

Просто если кто-нибудь столкнется с этой проблемой в будущем, я обновился до java 11 и реализовал ее, используя http-клиент в java 11 . Я понятия не имею, почему это решает проблему, но оно делает.

...