Я хочу написать функцию, которая прослушивает сервер, отправляя запросы на запросы повторно. Следующий запрос не следует отправлять на сервер до получения ответа от первого запроса. Для имитации этого, я пишу следующий код, который посылает запрос подряд получить к серверу 5 раз:Как отправить последовательные запросы на получение
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
TextView tv = new TextView(this);
for (int i = 0; i < 5; i++)
{
tv.setText(retrieve("http://www.mydomain.com/http.php?key=" + i));
setContentView(tv);
}
}
«Строка извлечения (String URL) {...}» является функция, которая возвращает содержание URL, в этом случае просто номер прислал следующий файл PHP («http.php»):
<?php
sleep(1);
echo $_GET['key']+1;
?>
Хотя я поставил 1 секунду сна, чтобы увидеть значения на моем андроид приложение, единственное, что я вижу, это «5» через несколько секунд , Так эти 5 запросов asyn или они последовательны или есть другая проблема?
но я хочу, чтобы это было synchoronus, я средний, второй запрос не должен быть отправлен до получения первого ответа от сервера (я прав?). Таким образом, это петля вроде этого ОК? – Mehmed
Вариант, который я вам дал, является рекомендуемым. Если вы прочитаете код, вы увидите метод onPostExecute. Это вызывается, когда запрос выполняется, поэтому он будет работать так, как вы хотите. Вы также можете сделать цикл на своем пути с помощью Threads: –
Спасибо за решение, это лучший способ, как вы сказали ... Мне также интересно ваше мнение о прослушивании сервера? Я думаю, что это http-получение не является реальным решением. – Mehmed