【问题标题】:Delphi, using idhttp to automate submit buttonDelphi,使用 idhttp 自动提交按钮
【发布时间】:2013-04-07 18:23:53
【问题描述】:

假设我有像 mozilla 和 iexplorer 这样的互联网浏览器,所以,我使用 mozilla 并且我已经使用我的帐户用户名和密码登录到一个网站,那么 idhttp 可以发布(提交表单,自动点击)到已经打开的帐户(不打开网络浏览器)?或者我将不得不再次使用我的用户名和密码来发布提交?

我不需要密码,只要求回答是或否,如果不是!我应该在 INDY 中使用什么控件? 示例:我想为点击自动提交按钮(我的帐户已经登录)!

谢谢

【问题讨论】:

    标签: delphi indy idhttp


    【解决方案1】:

    您的问题没有简单的是/否答案。这取决于网站/服务器如何处理身份验证。

    默认情况下,http 是 STATELESS:对服务器的每次调用都对前一次调用一无所知。在这种情况下,您将必须对您访问服务器的每次进行身份验证。

    但大多数现代网站都实现了某种身份验证持久性:要么通过在服务器上维护用户会话信息,要么正如 Arnaud Bouchez 所提到的,发回一个跟踪您的身份验证的 cookie。

    我曾经编写过一个自定义 Web 应用程序,它在第一个响应中发送回一个加密的身份验证令牌,它是客户端(它是一个自定义 Windows 客户端,具有使用 idhttp 实现的嵌入式套接字,而不是浏览器客户端)负责发送为每个后续请求返回该令牌。

    所以,你的答案是:让服务器来处理——你通常没有太多选择。

    【讨论】:

      【解决方案2】:

      我怀疑身份验证将在浏览器本地进行,即通过特定于浏览器的 cookie 进行验证。

      从 Delphi 代码中,您需要检索 cookie(有可能,例如from a SQLite3 file with FireFox,或在 IE 中作为用户配置文件中的纯文本),然后使用 Indy 查询网站,包括 cookie 内容在请求标头中。

      但这在很大程度上取决于身份验证的完成方式。例如,它使用 HTTP 还是 HTTPS 协议?服务端是如何实现的?

      【讨论】:

        【解决方案3】:

        如何创建一个具有登录网站后自动提交功能的自定义浏览器?
        我曾经使用 TChromium 和 TBrowser 制作具有自动表单提交功能的自定义浏览器。
        这很简单。您只需要知道如何使用 javascript 控制 dom 并操作页面源。
        对不起,简单的答案

        【讨论】:

          猜你喜欢
          • 2014-12-26
          • 1970-01-01
          • 2018-11-14
          • 1970-01-01
          • 2011-06-29
          • 1970-01-01
          • 2011-03-12
          • 1970-01-01
          • 2016-01-21
          相关资源
          最近更新 更多