Автор Тема: [Сеть, интернет] Запретить скрипту автоматическую передачу cookie при использовании WinHTTP  (Прочитано 4501 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Crazy Kvace [?]

  • Новичок
  • *
  • Сообщений: 30
  • Репутация: 7
  • Пол: Мужской
    • Награды
Доброе время суток!
Есть скрипт отправляющий GET запросы серверу.

Код: AutoIt [Выделить]
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")

$oHTTP.Open("GET", "http://192.168.30.12/") ;1 запрос
$oHTTP.SetRequestHeader("Accept", "*/*")
$oHTTP.SetRequestHeader("Accept-Language", "ru-RU")
$oHTTP.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)")
$oHTTP.SetRequestHeader("Host", "192.168.30.12")
$oHTTP.SetRequestHeader("Connection", "Keep-Alive")
$oHTTP.Send("")
$oHTTP.WaitForResponse
$HTML=$oHTTP.ResponseText
$sHTML = BinaryToString($HTML)
$string = StringRegExpReplace($sHTML, ".*(Mt([0-9a-zA-Z]+)).*", "$1")

$oHTTP.Open("GET", "http://192.168.30.12/?s=" & $string) ;2 запрос
$oHTTP.SetRequestHeader("Accept", "*/*")
$oHTTP.SetRequestHeader("Referer", "http://192.168.30.12/")
$oHTTP.SetRequestHeader("Accept-Language", "ru-RU")
$oHTTP.SetRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)")
$oHTTP.SetRequestHeader("Host", "192.168.30.12")
$oHTTP.SetRequestHeader("Connection", "Keep-Alive")
$oHTTP.Send("")
$oHTTP.WaitForResponse
$HTML=$oHTTP.ResponseText
$sHTML = BinaryToString($HTML)

MsgBox (0, "html: ", $sHTML)
 


При проверке работы скрипта HTTP Analyzer'ом, я заметил что при отправке второго запроса, скрипт прикрепляет еще и cookie которые сервер возвращает при первом запросе, хотя мне это не нужно, и у меня в коде это не упоминается.

Второй запрос глазами HTTP Analyzer...
GET /?s=MtNzctMS0zLTUzNjkzLTgtMC0xLTEzND0MDkwNTc4MC4yNzg2MjMxOTAyMD HTTP/1.1
Accept: */*
Referer: http://192.168.30.12/
Accept-Language: ru-RU
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Host: 192.168.30.12
Connection: Keep-Alive
Cookie: _pgz=40901947e69c4cb7eeba08.28

Как мне запретить передачу cookie скриптом Autoit без необходимости? может какой-то параметр существует?
Заранее спасибо.


Русское сообщество AutoIt


Оффлайн Redline [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 506
  • Репутация: 369
  • Пол: Мужской
    • Награды
По идее есть такой флаг WINHTTP_OPTION_DISABLE_FEATURE, а в нем:
WINHTTP_DISABLE_COOKIES

    Automatic addition of cookie headers to requests is disabled. Also, returned cookies are not automatically added to the cookie database. Disabling cookies can result in poor performance for Passport authentication.
link
У меня не получилось найти соответствующий option для WinHttp.
Их вообще сложно найти в виде констант, который понимает AutoIt:
Код: AutoIt [Выделить]
$oHttp.option(6) = False ; отключение авторедиректа


Пока вижу только два способа решения задачи:
1. Принудительно выставить пустую куку самому (но не факт что поможет):
Код: AutoIt [Выделить]
$oHTTP.SetRequestHeader('Cookie', '')

2. Удалять объект WinHttp перед запросом вызовом и создавать заново:
Код: AutoIt [Выделить]
;................
$string = StringRegExpReplace($sHTML, ".*(Mt([0-9a-zA-Z]+)).*", "$1")

$oHTTP = 0
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("GET", "http://192.168.30.12/?s=" & $string) ;2 запрос
;.....................


PS: прилеплю здесь список найденных мною опций, чтобы не искать в следующий раз:
(нажмите для показа/скрытия)
Уроки по регулярным выражениям на AutoIt: RegExp

Оффлайн Crazy Kvace [?]

  • Новичок
  • *
  • Сообщений: 30

  • Автор темы
  • Репутация: 7
  • Пол: Мужской
    • Награды
 Redline
Спасибо за помощь, помог 2 способ!  :)

Цитировать
Код: AutoIt [Выделить]
$oHTTP = 0
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
 


Тема закрыта.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
6133 Просмотров
Последний ответ Ноябрь 22, 2009, 20:00:36
от dimontag
7 Ответов
5564 Просмотров
Последний ответ Апрель 16, 2011, 06:26:18
от Redline
9 Ответов
5217 Просмотров
Последний ответ Июнь 07, 2011, 14:54:05
от misha497
0 Ответов
3534 Просмотров
Последний ответ Февраль 13, 2012, 02:36:14
от AlexxxRu
5 Ответов
3661 Просмотров
Последний ответ Май 19, 2016, 15:00:03
от ZeVSalt
6 Ответов
1689 Просмотров
Последний ответ Ноябрь 06, 2016, 11:50:53
от Елена Голуб
0 Ответов
3224 Просмотров
Последний ответ Февраль 14, 2017, 00:06:28
от reset86
12 Ответов
2505 Просмотров
Последний ответ Февраль 22, 2017, 15:23:42
от Garrett
3 Ответов
885 Просмотров
Последний ответ Июнь 30, 2017, 22:21:52
от rpgeha
0 Ответов
139 Просмотров
Последний ответ Сентябрь 16, 2018, 01:47:46
от aranea