Что нового

[Ошибки] Из одного запроса в другой

CreatiK

Новичок
Сообщения
93
Репутация
4
Мы отправляем один запрос в интернет ждем ответа от сервера Response потом находим в этом Response ид человека и вставляем в другой. вот мой пример он получает ид но потом не может отправить((( Ошибка
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $hGUI, $Input, $Button, $nMsg, $sMoney

$hGUI = GUICreate("Атака", 201, 91, -1, -1)
GUICtrlCreateLabel("Получить ID", 0, 5, 104, 20, $SS_CENTER)
$Input = GUICtrlCreateInput("", 12, 20, 80, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_READONLY))
$Button = GUICtrlCreateButton("Получить", 10, 42, 84, 25)
$Button1 = GUICtrlCreateButton("Атака", 120, 16, 59, 49)
GUISetState(@SW_SHOW)

Opt('MustDeclareVars', 1)
Opt('TrayIconDebug', 1)


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button
            GUISetState(@SW_DISABLE)
            GUICtrlSetData($Input, '')
            $sMoney = _My_Func()
            If $sMoney <> -1 Then
                GUICtrlSetData($Input, $sMoney)
            Else
                GUICtrlSetData($Input, 'Ошибка')
            EndIf
            GUISetState(@SW_ENABLE)
		Case $Button1
			_My_Func1()
			_My_Func2()
	EndSwitch
WEnd

Func _My_Func()
    Local $Response, $sMessage
    Local $Host = 'alpha.shinytales.ru'
    If Not Ping($Host) Then Return -1
    Local $File = '/b/'
    Local $URL = 'http://' & $Host & $File
    Local $PostData = '{"useChached":false,"_id":"vk_57292995","op":"GetOponentsList","level":29}'
    Local $oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
    $oHTTP.Open('POST', $URL)
    $oHTTP.setTimeouts(5000, 5000, 10000, 10000)
    $oHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
    Execute('$oHTTP.Send($PostData)')
    If (@error) Or ($oHTTP.Status <> 200) Then
        Return -1
    Else
        $oHTTP.WaitForResponse
        $Response = $oHTTP.ResponseText
        If Not $Response Then Return -1
    EndIf
    $sMessage = StringRegExpReplace($Response, '(?s).*?"sid": "vk_(\d+)", "lvl": 29?.*', '\1')
    If Not $sMessage Then Return -1
    Return $sMessage
EndFunc   ;==>_My_Func

Func _My_Func1()
		$URL = 'http://alpha.shinytales.ru/d/'
		$PostData   = '{"op":"DoStartBattle","oppLvl":29,"isBot":false,"b":1,"oppSID":"vk_'& GUICtrlRead(StringStripWS($Input, 3)) &'","_id":"vk_57292995"}'
		$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
		$oHTTP.Open("POST", $URL)
		$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
		$oHTTP.Send($PostData)
		$oHTTP.WaitForResponse
		$Response = $oHTTP.ResponseText
EndFunc

Func _My_Func2()
        $URL = 'http://alpha.shinytales.ru/d/'
		$PostData ='{"op":"DoFinishBattle","_id":"vk_57292995","resultBattle":{"iwin":true,"plus":{"rate":1,"b":1,"mnyv":50,"xp":0,"bc":5},"e":1},"opplvl":29,"abyl":null,"lbns":[]}'
        $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
		$oHTTP.Open("POST", $URL)
		$oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
		$oHTTP.Send($PostData)
		$oHTTP.WaitForResponse
		$Response = $oHTTP.ResponseText
EndFunc


сама ошибка
Код:
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\Дмитрий\Desktop\Гонки\aaa.au3"    
C:\Users\???????\Desktop\?????\aaa.au3 (66) : ==> Variable used without being declared.:
$URL = 'http://alpha.shinytales.ru/d/'
^ ERROR
>Exit code: 1    Time: 26.836
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Так в ошибке же явно указана причина:
Variable used without being declared - Переменная используется без объявления
А так как в вашем коде указанно:
Код:
Opt('MustDeclareVars', 1)

Это значит, что необходимо объявлять все переменные перед их использованием.

Пример:
Код:
Func _My_Func1()
           Local $URL, $PostData
           $URL = 'http://alpha.shinytales.ru/d/'
           ; т.д.
EndFunc


Так же, можно оптимизировать код. Из функций _My_Func, _My_Func1, _My_Func2 вынести код работы с HTTP в отдельную функцию и вызывать ее с нужными параметрами.
 
Автор
C

CreatiK

Новичок
Сообщения
93
Репутация
4
`p r o x y вот у меня задан откуда вытаскивать ид
Код:
$sMessage = StringRegExpReplace($Response, '(?s).*?"sid": "vk_(\d+)", "lvl": 29?.*', '\1')
Почему он не тот вытащил должен "lvl": 29 а вытащил мне сейчас "lvl": 26

часть Response
Код:
{"answer": "OK", "opponents": {"vk_107719788": {"gangs": 6, "time_s": 1298059083, "bns": {}, "flst": [{"body": ["b_f_f_0", "b_f_h_103", "e", "e"], "lost": 447, "sexf": true, "car": "cr_18", "wpn": "wp_f03", "cloth": ["e", "cl_f_5_103", "cl_f_6_103", "cl_f_7_1", "cl_f_8_0"], "rate": 660, "won": 1219, "sid": "vk_11069111", "lvl": 26, "xp": 9644.0}, {"body": ["b_m_f_107", "b_m_h_107", "e", "e"], "lost": 225, "sexf": false, "car": "cr_18", "wpn": "wp_f03", "cloth": ["e", "cl_m_5_107", "cl_m_6_107", "cl_m_7_107", "cl_m_8_107"], "rate": 920, "won": 1193, "sid": "vk_40272219", "lvl": 29, "xp": 11086.5},
 
Автор
C

CreatiK

Новичок
Сообщения
93
Репутация
4
`p r o x y [?]
Так же, можно оптимизировать код. Из функций _My_Func, _My_Func1, _My_Func2 вынести код работы с HTTP в отдельную функцию и вызывать ее с нужными параметрами.
можешь показать пример
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
{MultplQuestionWarn.SModer}
{TopicSolvedInfo}





1 тема - 1 вопрос.
Про ошибку решили. Все остальное в новую тему.
 
Верх