Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
5 / 5 / 2
Регистрация: 30.09.2012
Сообщений: 66

Как отправить POST больше 1 раза

30.09.2012, 03:15. Показов 2453. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Пишу приложение сугубо для семейного использования. Имеется домашний сервер, который обрабатывает запросы моего приложения. Подключение идет через роутер, на котором настроен проброс портов, то есть если на телефоне включить WIFI и перейти по http://мой.сайт, попадаю на страницу логина роутера.
Возникла задача определить дома я или нет, и в зависимости от этого определить URI в HttpPost.
Делаю примерно следующее:
Делаю запрос по "http://мой.сайт", если попадаю на сервер - получаю "Yes", если нет, то меняю URI на "http://192.168.0.111".
Начал тестить, вот что вышло: При включеном WiFi все работает как задумано, но если я отключаю WiFi, и пробую запустить приложения с коннетком от провайдера, то я первый раз получаю "Yes", а второй запрос ничего не возвращает. Сутки почти бьюсь, все варинты испробовал. Причем если этот же запрос выполнить в единственном виде(без проверки и явно указать то что по условиям выставляется), то все работает.

Вот собственно код, подскажите что в нем не так, или посоветуйте куда копать или что курить)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
public class MainActivity extends Activity {
 
    TextView editText1;
    Boolean isGlob;
    HttpPost httppost;
    HttpClient httpclient;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        editText1 = (TextView)findViewById(R.id.tvAnswer);
        isGlob = true;
        httpclient = new DefaultHttpClient();
        httppost = new HttpPost("http://mysite.ru");
        isGlob = checkConnection();
        editText1.setText("Проверили");
        Log.d("myLogs", "Проверили");
        if (!isGlob){httppost = new HttpPost("http://192.168.0.111");}
        else {httppost = new HttpPost("http://bug.mss22.ru");}
        Log.d("myLogs", toString(isGlob));
        editText1.setText("Готовимся");
        setMessage();
    }
 
    public void setMessage() {
    try{
        // определяешь элементы массива POST
        List < NameValuePair > nameValuePairs = new ArrayList < NameValuePair > (2);
 
        nameValuePairs.add(new BasicNameValuePair("action", "mess"));
        nameValuePairs.add(new BasicNameValuePair("is_global", "null"));
 
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
        // выполняешь POST-запрос
        HttpResponse response = httpclient.execute(httppost);
        String responseStr = convertStreamToString(httppost.getEntity().getContent());
        Log.d("myLogs", "res" + responseStr);
        responseStr = convertStreamToString(response.getEntity().getContent());
        editText1.setText(responseStr);
        Log.d("myLogs", "res" + responseStr);
    }
    catch (ClientProtocolException e) {Log.d("myLogs", "ClientProtocolException");editText1.setText("Ошибка 1");}
    catch (IOException e) {Log.d("myLogs", "IOException");editText1.setText("Ошибка 2");}
    }
    
    public boolean checkConnection() {
    try {
        List < NameValuePair > nameValuePairs = new ArrayList < NameValuePair > (2);
 
        nameValuePairs.add(new BasicNameValuePair("is_global", "test"));
 
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
        HttpResponse response = httpclient.execute(httppost);
        String responseStr = convertStreamToString(response.getEntity().getContent());
        
        editText1.setText(responseStr);
        Log.d("myLogs", responseStr);
        if(responseStr == "yes") {isGlob = true;}else{isGlob = false;}
    }
    catch (ClientProtocolException e) {editText1.setText("Ошибка 1");}
    catch (IOException e) {editText1.setText("Ошибка 2");}
    return isGlob; 
    }
    
    private String toString(Boolean isGlob2) {
        // TODO Auto-generated method stub
        if(isGlob2)return "true";
        else return "false";
    }
 
    public static String convertStreamToString(InputStream is) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
 
        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.reset();
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }
    @Override
    public void onConfigurationChanged(Configuration newConfig) {  
            super.onConfigurationChanged(newConfig);  
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2012, 03:15
Ответы с готовыми решениями:

Существует ли треугольник АВС, у которого АВ = 7 см, ВС в два раза больше АВ, а АС в три раза больше АВ
15. Существует ли треугольник АВС, у которого АВ = 7 см, ВС в два раза больше АВ, а АС в три раза больше АВ.

Как отправить POST запрос?
Нужно отправить готовый запрос, например: -------------------------------- POST ... HTTP/1.1 Host: ... Content-Length: 119 ...

Как отправить Post запрос
Здравствуйте ув. форумчане. Прошу вашей помощи,мучаюсь с этим уже долго,но никак не могу найти ответа. Как отправлять Post запросы в C#...

1
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
06.10.2012, 13:36
мб попробуете AsyncHttpClient?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2012, 13:36
Помогаю со студенческими работами здесь

Как отправить POST-запрос?
Парсинг + Отправка POST формы и получение результата Вот собственно вопрос, есть сайт Wmmail, нужно отправить на него post запрос ...

Как отправить POST'ом картинку?
понять не могу в каком виде нужно прикреплять картинку к POST запросу. по идее этот пост запрос текстовой же? а закавыка в том, что...

Как отправить POST запрос?
как отправить POST запрос такого вида? POST /in.php HTTP/1.1 Host: antigate.com Content-Type: multipart/form-data;...

Как отправить Post запрос
Всем привет не могу понять как такой формат запроса отсылать большое спасибо за помощью.

Как отправить post запрос на сайт?
Как отправить Api запрос на этот сайт : https://api.binance.com/api/v1/order . (Post) Вот эти данные : Сколько не прыгал с бубном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru