Что нового

Как отправить POST запрос через IE?

andriy111

Новичок
Сообщения
58
Репутация
0
Помогите в отправке POST запрос через IE.au3? :stars:
 
Автор
A

andriy111

Новичок
Сообщения
58
Репутация
0
Уважаемый mef-t, где же Вы там увидели отправку POST запроса через функции IE.au3???
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
Прошу прощения, но каким образом Вы вообще представляете себе отправку POST запроса через "функцию" IE.au3?
Просто опишите, что именно Вы хотите. Может я Вас не правильно понял.
 
Автор
A

andriy111

Новичок
Сообщения
58
Репутация
0
Открыть страницу, и при переходе между страницами передавать запросы. Мне интересно возможно ли на сегодняшний день такое в IE.au3?(способ заполнения форм не подходит)
Задача вот какая:
Надо скачать файл, который начнет качаться только после последнего (с 5 последовательных запросов) POST запроса=)
Уже реализовывал всю последовательность на WinHttp но так и не получилось принять тот файл после последнего запроса...
Вот и ищу новые способы.
Пока есть такие идеи:
1. Принятые cookies в WinHttp, каким-то образом передать в IE при открытии последней страницы и емулировать нажатие кнопки. Проблема в передаче cookies.
2. Реализовать все запросы в ie
3. Или все таки доработать WinHttp и каким-то образом принять тот файл=)

Помогите кто сможет=)
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Надо закачать файл, который начнет качаться только после последнего (с 5 последовательных запросов) POST запроса=)
Закачивают обычно НА сервер...
но так и не получилось принять тот файл после последнего запроса...
Здесь Вы пишите принять...

ЗЫ: Надо принять или отправить файл ???

Если принять и есть ссылка на сам файл используйте:
Код:
InetGet
 
Автор
A

andriy111

Новичок
Сообщения
58
Репутация
0
Скачать!
ссылки прямой нет, так как скрипт генерирует эти файлы при POST запросе.

при скачке файла ссылка имеет вид: server.com/redirect.php
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
как ответ возвращает пост-запрос
 
Автор
A

andriy111

Новичок
Сообщения
58
Репутация
0
mef-t, страница при нажатии на кнопку отправляет POST запрос после чего начинается загрузка файла!
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
Для отправки POST-запроса в IE нужна форма с полями и нажатие кнопки оправки формы (submit):
Код:
_IEFormSubmit()

Читаем файл помощи с примерами.

А Тут есть пример работы с куками в WinHTTP.
 
Автор
A

andriy111

Новичок
Сообщения
58
Репутация
0
Redline, спасибо за ответ. Но мне нужно передать куки принятые через WinHTTP в IE и открыть страницу.
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
andriy111 [?]
нужно передать куки принятые через WinHTTP в IE и открыть страницу.
Можно попробовать:
Код:
#include <IE.au3>
$oIE = _IECreate('')
$oIE.Document.Cookie = 'cookie_name=cookie_value; path=/;'
 
Автор
A

andriy111

Новичок
Сообщения
58
Репутация
0
Redline
Спасибо за ответ.

Такое действие добавляет текст до имеющихся куки. Можно как-нибудь очистить то что есть и вставить то что нужно через функцию которую Вы написали?
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
andriy111 [?]
как-нибудь очистить то что есть и вставить то что нужно

Сам я с таким не работал, но попробуйте поэкспериментировать.
По идее если вы хотите изменить значение куки, то нужно повторить значение "path" и "domain" для неё:
было "кука_1=1234;path=/;domain=google.com;expires=....;кука_2=5678;path=/;domain=mail.ru;expires=..."
стало "кука_1=новое_значение_1;path=/;domain=google.com;кука_2=новое_значение_2;path=/;domain=mail.ru;"
"expires" остается от прежнего значения и его можно не трогать.

А вот для удаления куки нужно сбросить время ее действия "expires", что-то вроде:
Код:
$oIE.Document.Cookie = 'кука_1=1234; expires=-1;'

А после попробовать установить свои значения переменной в куках.

Но это мои дилетантские предположения, так что пробуйте, гуглите и пользуйтесь поиском по форуму :smile:
 
Автор
A

andriy111

Новичок
Сообщения
58
Репутация
0
Redline
Спасибо за внимание к моей проблеме!
К сожалению Ваш способ не работает...
Експериментировал удалением всех куков :
Код:
Run('RunDll64.exe InetCpl.cpl,ClearMyTracksByProcess 2')


Но почему-то куки остаются, даже включая те что только что добавились...=(
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Что касается вопроса:
Поищем что нибудь на оффициальном сайте. На нашем поиск для гостей отключен, пример не будет наглядным.
Ищем слово hello
Код:
#include <ie.au3>
$sFormAction = "http://www.autoitscript.com/forum/index.php?app=core&module=search&do=search&fromMainBar=1"
$sHeader = "Content-Type: application/x-www-form-urlencoded"
$sDataToPost = "search_term=hello&search_app=forums"
$oDataToPostBstr = __IEStringToBstr($sDataToPost)
$oIE = _IECreate()
$oIE.Navigate( $sFormAction, Default, Default, $oDataToPostBstr, $sHeader)



Добавлено:
Сообщение автоматически объединено:

Или вот, даже проще:
Ищем привет
Код:
#include <ie.au3>
$sFormAction = "http://www.autoitscript.com/forum/index.php?app=core&module=search&do=search&fromMainBar=1"
$sHeader = "Content-Type: application/x-www-form-urlencoded"
$sDataToPost = "search_term=привет&search_app=forums"
$oDataToPostBstr = StringToBinary($sDataToPost,4)
$oIE = _IECreate()
$oIE.Navigate( $sFormAction, Default, Default, $oDataToPostBstr, $sHeader)



Добавлено:
Сообщение автоматически объединено:

:
не понятно зачем автор IE городил огород с __IEStringToBstr. Может быть в те времена не было StringToBinary
 
Верх