|
|
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
Есть поток с компонентом инди, который выполняет запрос. Этот запрос может выполняться около минуты. Вот код. Код: pascal 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. Поток останавливаю при помощи функции Stop. Функция Stop вызывается из главного потока. В общем есть ли в данном коде грабли и какие: if FHttp.Connected then FHttp.Disconnect; - так можно вызывать из главного потока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 22:40 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
Хочу узнать, как правильно закрывать Connection у idHttp. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 22:53 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
Думаю, надо в каком-нибудь событии у FHttp проверять какую-нибудь переменную и есть True, то останавливать выполнение запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 12:32 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
X11, проблема в том, что идет запрос к серверу и дальше ожидание ответа от сервера. Сервер может ответить в любое время или по истечении например 1 минуты или выход по timeout. Сервер ответил, обработал запрос и дальше снова запрос к серверу. Так что не понятно какое событие обрабатывать, чтобы остановить запрос? Иногда возникает необходимость остановить весь процесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 13:18 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
Послать сообщение серверу с командой на отмену. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 14:52 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
rgreat, Я доступа к серверу не имею. К тому же запрос уже обрабатывается :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 16:57 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
Обломись тогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:06 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
rgreat, Поэтому я хочу сделать force close, думаю в приведенном коде есть грабли или нет с точки зрения потоков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:13 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
ziv-2014if FHttp.Connected then FHttp.Disconnect; - так можно вызывать из главного потока.Нужно смотреть код Http.Disconnect, но скорее всего нет. Я бы попробовал добраться до хэндла сокета и сделать ему closesocket. А вообще вам нужен обычный неблокирующий сокет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:15 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Пробовал Closesocket, но тоже сомневаюсь :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 22:40 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
ziv-2014, Если сокет стоит на блокировке (например, на тайм-ауте), то, насколько я знаю, можно только убить поток TerminateThread. Решение плохое. Если возможно - то лучше работать с неблокирующими сокетами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 23:42 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
Семь бед - один free. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 00:24 |
|
||
|
Отмена запроса в idHttp
|
|||
|---|---|---|---|
|
#18+
makhaonЕсли сокет стоит на блокировке (например, на тайм-ауте), то, насколько я знаю, можно только убить поток TerminateThread. Под Windows его из ожидания вышибет closesocket(). Под линуксом - shutdown(). Может, он и под Windows тоже сработает, не проверял. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 01:26 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39739965&tid=2040063]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 467ms |

| 0 / 0 |
