Delphi 如何使用TIdHTTP在没有表单的情况下登录网页?
我想使用Delphi连接到嵌入式网页。如何使用Delphi 如何使用TIdHTTP在没有表单的情况下登录网页?,delphi,login,idhttp,Delphi,Login,Idhttp,我想使用Delphi连接到嵌入式网页。如何使用TIdHTTP登录此网页?我尝试了此代码,但无法保持连接。页面中不包括标准POST操作。您会看到该页面不包含表单。我该怎么做?这个页面需要什么帖子 这是我的代码: IdHTTP1.Get('http://192.168.1.139/chklogin.php?a=0&u=admin&p=123456',ms); IdHTTP1.Connect; ShowMessage(IdHTTP1.ResponseText); 我试过这样做 Pos
TIdHTTP
登录此网页?我尝试了此代码,但无法保持连接。页面中不包括标准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);
PostData:=TStringList.Create;
Add('u='+用户);
Add('pw='+密码);
PostData.Add('submit=?);// 不要手动调用Connect()
Get()
在内部为您处理该问题
Get()
的返回值包含响应内容,ResponseText
不是您想要的内容
试试这个:
ShowMessage(IdHTTP1.Get('http://192.168.1.139/chklogin.php?a=0&u=admin&p=123456');
不要手动调用Connect()
Get()
在内部为您处理该问题
Get()
的返回值包含响应内容,ResponseText
不是您想要的内容
试试这个:
ShowMessage(IdHTTP1.Get('http://192.168.1.139/chklogin.php?a=0&u=admin&p=123456');
非常感谢。但问题是,我们无法回到过去。我已经可以回击了。但这种联系是不存在的。@metinkar保留生命是协商的。执行Get()
:IdHTTP1.request.Connection:=“保持活动”时,添加保持活动的显式请求
但不能保证服务器将实际保持连接在其端的活动状态。HTTP是无状态的,不要依赖于保持生命被尊重。让我再问你一次。不工作。我们如何发布()?当我创建请求时,提交哪些附加值?例如PostData:=TStringList.Create;尝试PostData.Add('u='+用户);Add('pw='+密码);PostData.Add('submit=?)@metinkar完全取决于服务器期望的内容,但在您显示的HTML中没有submit
值,它显然使用GET
而不是POST
。我向您展示的内容与XMLHTTP
脚本发送的内容相匹配,只是它也发送d
值,而您没有发送。由于存在cookies,您应该获取登录表单本身的HTML页面(也可能是在提示登录之前尝试访问的页面的HTML页面)在将登录表单提交到服务器之前,不要忘记在每个请求上设置TIdHTTP.Request.Referer
。模仿web浏览器所做的一切并不总是微不足道的。这就是为什么您应该首先查看正在工作的浏览器的实际请求,然后根据需要在代码中模拟它们。别猜了,谢谢。但问题是,我们无法回到过去。我已经可以回击了。但这种联系是不存在的。@metinkar保留生命是协商的。执行Get()
:IdHTTP1.request.Connection:=“保持活动”时,添加保持活动的显式请求
但不能保证服务器将实际保持连接在其端的活动状态。HTTP是无状态的,不要依赖于保持生命被尊重。让我再问你一次。不工作。我们如何发布()?当我创建请求时,提交哪些附加值?例如PostData:=TStringList.Create;尝试PostData.Add('u='+用户);Add('pw='+密码);PostData.Add('submit=?)@metinkar完全取决于服务器期望的内容,但在您显示的HTML中没有submit
值,它显然使用GET
而不是POST
。我向您展示的内容与XMLHTTP
脚本发送的内容相匹配,只是它也发送d
值,而您没有发送。由于存在cookies,您应该获取登录表单本身的HTML页面(也可能是在提示登录之前尝试访问的页面的HTML页面)在将登录表单提交到服务器之前,不要忘记在每个请求上设置TIdHTTP.Request.Referer
。模仿web浏览器所做的一切并不总是微不足道的。这就是为什么您应该首先查看正在工作的浏览器的实际请求,然后根据需要在代码中模拟它们。别猜了。