PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Пожалуйста пример HTTPRequest с таймаутом.


Пожалуйста пример HTTPRequest с таймаутом.

Сообщений 1 страница 7 из 7

1

Добрый день.
Так как в самой процедуре HTTPRequest нет таймаута, то может кто либо делал что либо подобное.
В принципе интересует работа с процедурой ReceiveHTTPMemory с таймаутом, так как надо читать данные.
Может есть у кого нибудь пример?
Сейчас работает без таймаута, но если адресс не существует то моя аппликация виснет.
Сам никогда не работал с HTTP, т.е. дуб дубом, так что написал как понимал.

Спасибо.

0

2

Можно использовать #PB_HTTP_Asynchronous чтобы приложение не висло.

0

3

Спасибо Петр!
Вот только понятный пример использования с константой #PB_HTTP_Asynchronous не нашел :(
У вас есть ?

Спасибо.

0

4

Код:
InitNetwork()

Download = ReceiveHTTPMemory("http://www.purebasic.com/download/OgreAssimpConverter.zip", #PB_HTTP_Asynchronous)
If Download
  Repeat
    Progress = HTTPProgress(Download)
    Select Progress
      Case #PB_HTTP_Success
        *Buffer = FinishHTTP(Download)
        Debug "Download finished (size: " + MemorySize(*Buffer) + ")"
        FreeMemory(*Buffer)
        End
        
      Case #PB_HTTP_Failed
        Debug "Download failed"
        FinishHTTP(Download)
        End
        
      Case #PB_HTTP_Aborted
        Debug "Download aborted"
        FinishHTTP(Download)
        End
        
      Default
        Debug "Current download: " + Progress
        
    EndSelect
    
    Delay(500) ; Don't stole the whole CPU
  ForEver
Else
  Debug "Download error"
EndIf

0

5

Спасибо Петр.
Пробовал я это, но как вы видите из этого же примера, выход из процедуры будет в лучшем случае через пару секунд, если адрес не правильный или не существует.
Так немного быстрее работает чем синхронный, если адрес существует.
Наверное придется научится запускать это в отдельном потоке.
С потоками у вас опыт есть?

Спасибо.

Отредактировано dibor (21.06.2021 20:37:43)

0

6

Добрый вечер.
Программа с горем по полам работает.
Но есть одно маленькое но.
Когда делаю компу Lock, а затем делаю логин - программа уже not responding :(
T.e. Наверное служба http или еще что либо в закрытом компе перестают работать, а моя прога продолжает слать запросы.
Как решить эту проблему?

Спасибо.

0

7

Проблема решилась после запуска процедур с HTTPRequest() и ReceiveHTTPMemory() в отдельном потоке.  :cool:

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Пожалуйста пример HTTPRequest с таймаутом.