Что нового

дайте простенькую UDF для отправки и приёма HTTP запросов

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
Дайте ссылочку на самую простую UDF для работы c HTTP.
Задача отправить запрос типа www.xxx.ru/index.php?xxx=****
Получить ответ в виде исходного кода страницы.

Если с примером такого, то в двойне буду благодарен.

Заранее спасибо, сори если повторяюсь, просто форум не считает "http" поисковым запросом (
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
1:
Код:
#include <Ie.au3>
$URL = 'http://xxx.ru/y.php?x=***' 
$oIE = _IECreate($URL, 0, 0)
If @error Then Return 0
_IELoadWait ($oIE)
$body=_IEBodyReadHTML ($oIE )
_IEQuit($oIE)


2:
Код:
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("GET", "http://xxx.ru/y.php?x=AAA3")
$oHTTP.Send("")
$oHTTP.WaitForResponse
$resp= $oHTTP.Responsetext
ConsoleWrite($resp&@LF)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
NoMad73rus
Или так попробуйте:
Код:
#include <Encoding.au3>

$sResult = _GetHTML("http://autoit-script.ru/index.php?topic=2011.msg14622;topicseen#new")
If $sResult <> "" Then
	_Encoding_UTF8ToANSI($sResult)
	$hFile = FileOpen(@ScriptDir & "\testHTML.txt", 2)
	FileWrite($hFile, $sResult)
	FileClose($hFile)
Else
	MsgBox(0, "ERROR", "ERROR")
EndIf

Func _GetHTML($sURL, $sSendParam = "", $iTimeout1 = 5000, $iTimeout2 = 10000)
	Local $aHost = StringRegExp($sURL, 'http://(.*?)/', 3)
	If Not IsArray($aHost) Then Return 0
	Local $sHost = $aHost[0]
	Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $sURL)
	$oHTTP.setTimeouts($iTimeout1, $iTimeout1, $iTimeout2, $iTimeout2)
	$oHTTP.SetRequestHeader("Host", $sHost)
	Execute('$oHTTP.Send($sSendParam)')
	If (@error) Or ($oHTTP.Status <> 200) Then Return 0
	Return $oHTTP.ResponseText
EndFunc   ;==>_GetHTML

Encoding UDF - Библиотека для работы с кодировками строк
 

kristow13

Новичок
Сообщения
76
Репутация
0
madmasles сказал(а):
NoMad73rus
Или так попробуйте:
Код:
#include <Encoding.au3>

$sResult = _GetHTML("http://autoit-script.ru/index.php?topic=2011.msg14622;topicseen#new")
If $sResult <> "" Then
	_Encoding_UTF8ToANSI($sResult)
	$hFile = FileOpen(@ScriptDir & "\testHTML.txt", 2)
	FileWrite($hFile, $sResult)
	FileClose($hFile)
Else
	MsgBox(0, "ERROR", "ERROR")
EndIf

Func _GetHTML($sURL, $sSendParam = "", $iTimeout1 = 5000, $iTimeout2 = 10000)
	Local $aHost = StringRegExp($sURL, 'http://(.*?)/', 3)
	If Not IsArray($aHost) Then Return 0
	Local $sHost = $aHost[0]
	Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
	$oHTTP.Open("POST", $sURL)
	$oHTTP.setTimeouts($iTimeout1, $iTimeout1, $iTimeout2, $iTimeout2)
	$oHTTP.SetRequestHeader("Host", $sHost)
	Execute('$oHTTP.Send($sSendParam)')
	If (@error) Or ($oHTTP.Status <> 200) Then Return 0
	Return $oHTTP.ResponseText
EndFunc   ;==>_GetHTML

Encoding UDF - Библиотека для работы с кодировками строк

Код не работает... Пишет error и все... Мне нужно делать http запрос и читать полученный ответ. Ответ в виде одной строки... Помогите плиз. :-[
 
Верх