wergio
@wergio
Программист - любитель!

Как вынести переменную вне класса?

Можно ли как-то сделать видимой переменную по всему классу?
String mess= response.toString();
В переменной находится ответ от сервера, но кроме как вывести в консоль с этим ответом больше ничего нельзя сделать.
return тоже не даёт результата.
Подскажите, кто знает.

public class Network {
    private static final String USER_AGENT = "Mozilla/5.0";
    private static final String POST_URL = "https://test.org/post.php";
    private static final String POST_PARAMS = "test=test";
    public static void main(String[] args) throws IOException {
        sendPOST();
    }

    public static void sendPOST() throws IOException {
        URL obj = new URL(POST_URL);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("User-Agent", USER_AGENT);

        // For POST only - START
        con.setDoOutput(true);
        OutputStream os = con.getOutputStream();
        os.write(POST_PARAMS.getBytes());
        os.flush();
        os.close();
        // For POST only - END
        int responseCode = con.getResponseCode();
        if (responseCode == HttpURLConnection.HTTP_OK) { //success
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();

            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();

            // print result

            String mess = response.toString();
        }
    }
}
  • Вопрос задан
  • 659 просмотров
Пригласить эксперта
Ответы на вопрос 2
TheKnight
@TheKnight
Программист
Ну как как...
Сделать ее полем класса. Не статическим и не финальным. Если ваш класс используется из нескольких потоков - можно использовать ThreadLocal, что бы менялась только переменная в текущем потоке.

Есть более простой вариант - вернуть ее из метода. И передать в следующий метод.

(Джонни, ты точно не терял свои таблетки?)
Ответ написан
lxsmkv
@lxsmkv
Test automation engineer
Я совсем не специалист по правильной архитектуре классов, но первое что приходит на ум: обьявите переменную mess как private свойство наряду с AGENT, POST_URL и пр, только не делайте ее final. и сделайте для нее метод доступа getMessage. Если getMessage возвращает null, переменная не была записана.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы