Как войти на веб-страницу без формы, используя TIdHTTP? - PullRequest
0 голосов
/ 03 февраля 2019

Я хочу подключиться к встроенной веб-странице с помощью Delphi.Как войти на эту веб-страницу, используя TIdHTTP?Я попробовал этот код, но он не поддерживает соединение.Стандартное действие POST не включено в страницу.Вы видите, что на странице нет формы.Как мне это сделать?Какой POST нужен для этой страницы?

Это мой код:

IdHTTP1.Get('http://192.168.1.139/chklogin.php?a=0&u=admin&p=123456',ms);
IdHTTP1.Connect;
ShowMessage(IdHTTP1.ResponseText);

Я пробовал таким образом;

PostData := TStringList.Create; 
PostData.Add('u='+user); 
PostData.Add('pw='+password); 
PostData.Add('submit=??????? ); // <-- What goes here?
IdHTTP1.Post('192.168.1.39/login', PostData);
[           
            function submit(){
            var pwd=$get('pw');
            var uname=$get('u');
            msgd=$get('msg');
            msgd.innerHTML='';
            if (uname.value.length===0){
                inpB=uname;
                dm("Enter Your Username");
                return;
            }else if (pwd.value.length===0){
                inpB=pwd;
                dm("Enter Your Password");
                return;
            }else{
                xmlhttpLog=$createXMLHttp();
                inpB=msgd;
                inpB.style.border="1px solid red";
                dm("Checking with TPL-Net");
                xmlhttpLog.open('GET', '/chklogin.php?a=0&u='+uname.value+'&p='+pwd.value+'&d='+$stamp(),false);
                xmlhttpLog.send(null);
                fileContent=xmlhttpLog.responseText;
                if (fileContent=='E'){
                    dm("Wrong Username/Password");
                    uname.value='';
                    pwd.value='';
                }else{
                    setCookie('tplnet',fileContent);
                    dm('Granted. Redirecting...<br>If redirection doesn\'t work click <a href="/index.html">here</a>');
                    setTimeout("window.location='/index.html';",2000);
                }
            }
        }
    </script>

    <td>User Name:</td>
    <td><input id="u" type="text" name="uname" style="width: 150px;"/></td>
    </tr><tr>
    <td>Password:</td>
    <td><input id="pw" type="password" name="pwd" style="width: 150px;" /></td>
    </tr><tr>
    <td height="50px" colspan="2"><a style="margin-top:20px;" class="buton" href="#" onClick="submit();">
    <span>Login</span></a>
    </td>


]

1 Ответ

0 голосов
/ 04 февраля 2019

НЕ звоните Connect() вручную!Get() обрабатывает это внутренне для вас.

Возвращаемое значение Get() содержит содержимое ответа, ResponseText не то, что вам нужно.

Попробуйте это:

ShowMessage(IdHTTP1.Get('http://192.168.1.139/chklogin.php?a=0&u=admin&p=123456');
...