Что нового

Как проверить конечный линк редиректа

joker2d

Новичок
Сообщения
182
Репутация
0
Есть линк который редиректит на какой то сайт
нужно в аутоит загрузить этот линк и определить на какой сайт он делает редирект

Как это можно сделать ?

Пытался это сделать на с помощью WinHttp.au3
но не нашел там ничего про адрес сайта который он грузит
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
joker2d
Зависит от типа редиректа, но в целом вот так:

Код:
Global $__g_oHttp = ObjCreate('WinHttp.WinHttpRequest.5.1')
; ---
ConsoleWrite(_Get('http://goo.gl/XWyRSq') & @CRLF)

Func _Get($sUrl, $sRef = '')
	Local $sLoc
	; ---
	With $__g_oHttp
		.Open('GET', $sUrl, 0)
		.SetRequestHeader('Referer', $sRef)
		.Option(6) = 0
		.Send()
		; *
		$sLoc = Execute('.GetResponseHeader("Location")')
	EndWith
	If $sLoc Then _
		Return _Get($sLoc, $sUrl)

	Return $sUrl
EndFunc
 
Автор
J

joker2d

Новичок
Сообщения
182
Репутация
0
Работает!

А на каком типе редиректа это не сработат ?
потестил несколько срабатывает как надо
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
joker2d
К примеру, если редирект осуществлен через javascript.

http://qoo.by/qCU
 
Автор
J

joker2d

Новичок
Сообщения
182
Репутация
0
А если редирект через javascript, можно в AutoIt получить его конечный линк?
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
joker2d
Если универсально, то без костылей никак.
 
Автор
J

joker2d

Новичок
Сообщения
182
Репутация
0
firex
Не надо универсально просто пример для javascript можно ?
я потом сам редиректы рассортирую
 
Верх