|
|
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
Часть кода опустил для читабельности, но суть, думаю ясна. Вызываю загрузку страницы через WinInet, на форму вешаю кнопку отмены. InternetCloseHandle(FHttpRequest) не решает проблемы. Где-то читал, что отменять запросы можно только в асинхронном соединении, но при установки ключа INTERNET_FLAG_ASYNC у меня вообще не выгружает страницу... Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 17:32 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
aford при установки ключа INTERNET_FLAG_ASYNC у меня вообще не выгружает страницу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 18:58 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Код будет? Вот код: Код: 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. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 08:47 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
aford Код: pascal 1. 2. На урле http://httpsrules.org сломается Ну и 4-кратный finally это не круто. Все можно упаковать в один ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 10:21 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
Василий 2, спасибо, поправлю, когда будет время. Но проблему я так и не решил.. асинхронный вызов не работает, точнее я не представляю как его сделать. InternetCloseHandle вроде срабатывает, но не на корпоративном сайте, там как-будто HttpSendRequest ждем ответа сервера, а потом только закрывается. Делаю так. В проекте 3 модуля: главный, модуль потока и что-то вроде обертки над wininet, которую привел выше. На главной форме на кнопку вешаю такой обработчик: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Событие StopThread: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Событие CancelRequest: Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 10:50 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 11:28 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
aford Вот код: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 14:40 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
Что значит - не решает проблемы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 16:11 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev, запрос не закрывается. Вот что сейчас есть, не пойму как правильно запустить InternetReadFileEx Код: 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. Теперь нужно посчитать ib.dwBufferLength, правильно? Только как это сделать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 16:31 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
авторDmitry Arefiev, запрос не закрывается В WinHttp что бы заработало, пришлось дополнительно к закрытию хэндлов в колбэке проверять флаг остановки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 10:13 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev, сделал с колбэками. Вроде работает в асинхронном режиме, но, бывает, что загружает со 2-го раза страницу, где требуется авторизация. И +не выскакивает окно ввода логина с паролем, если не передавать функции данные авторизации Код: 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. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 10:52 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
А не, все норм. Выскакивает авторизация. Не спрашивает логин с паролем, если используется предыдущий коннект, видимо который еще не закрылся. Но проблема с загрузкой страницы со 2-го раза еще актуальна. Бывает сразу загружает, а бывает, что сначала пустую страницу, а потом нормально отрабатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 10:59 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
aford, может редирект не срабатывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 11:33 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
aford А не, все норм. Выскакивает авторизация. Не спрашивает логин с паролем, если используется предыдущий коннект, видимо который еще не закрылся. WinInet кэширует соединения и авторизацию в них aford Но проблема с загрузкой страницы со 2-го раза еще актуальна. Бывает сразу загружает, а бывает, что сначала пустую страницу, а потом нормально отрабатывает. Http сниффер в помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 11:46 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
Да, не срабатывает авторизация, 401 в сниффере. А 2-м запросом нормально. Ну так я вроде и жду после отправки логина с паролем... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 11:50 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
А ожидание прерывается только при статусах INTERNET_STATUS_REDIRECT и INTERNET_STATUS_RESPONSE_RECEIVED WaitAndStop выше в листинге, не буду дублировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 11:52 |
|
||
|
Отменить HttpSendRequest в WinInet
|
|||
|---|---|---|---|
|
#18+
Не дожидался утвердительного или отрицательного ответа сервера на аторизацию, поэтому пропускался этот шаг и выдавалась пустая страница. А дальше WinInet просто кэшировал авторизованное соединение и следующий запрос пропускал без проблем. Если запускать асинхронно, то завершить можно в любой момент. Вопрос решен, всем спасибо! Приведу полный код, т.к. везде понемногу изменения: Код: 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. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 12:29 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39922717&tid=2038633]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 517ms |

| 0 / 0 |
