假设我有像 mozilla 和 iexplorer 这样的互联网浏览器,所以,我使用 mozilla 并且我已经使用我的帐户用户名和密码登录到一个网站,那么 idhttp 可以发布(提交表单,自动点击)到已经打开的帐户(没有打开网络浏览器)?或者我将不得不再次使用我的用户名和密码来发布提交?
我不需要代码,只要求回答是或否,如果不是!我应该在 INDY 中使用什么控件?示例:我想为单击自动提交按钮(我的帐户已经登录)!
谢谢
我怀疑身份验证将在浏览器本地进行,即通过特定于浏览器的 cookie 进行验证。
从 Delphi 代码中,您需要检索 cookie(可能有可能,例如从带有 FireFox 的 SQLite3 文件,或使用 IE 作为用户配置文件中的纯文本),然后使用 Indy 查询网站,包括 cookie 内容在请求标头中。
但这在很大程度上取决于身份验证的完成方式。例如,它使用 HTTP 还是 HTTPS 协议?服务端是如何实现的?
您的问题没有简单的“是/否”答案。这取决于网站/服务器如何处理身份验证。
默认情况下,http 是STATELESS:对服务器的每次调用对前一次调用一无所知。在这种情况下,您必须在每次访问服务器时都进行身份验证。
但是大多数现代站点都实现了某种身份验证持久性:要么通过在服务器上维护用户会话信息,要么正如 Arnaud Bouchez 所提到的,发回一个跟踪您的身份验证的 cookie。
我曾经编写过一个自定义 Web 应用程序,它在第一个响应中发回一个加密的身份验证令牌,并且它是客户端(它是一个自定义 Windows 客户端,带有使用 idhttp 实现的嵌入式套接字,而不是浏览器客户端)的责任来发回那个令牌对于每个后续请求。
所以,你的答案是:让服务器来处理它——你通常没有太多选择。
如何创建一个具有登录网站后自动提交功能的自定义浏览器?
我曾经使用 TChromium 和 TBrowser 制作具有自动表单提交功能的自定义浏览器。
这简单。您只需要知道如何使用 javascript 控制 dom 并操作页面源。
对不起,简单的答案