我正在尝试使用 Borland Builder 6 和 Indy 10.6 通过安全连接登录网站,但我输了。该网站返回给我的页面与我预期的不同,因为我发布的数据可能不正确,或者可能缺少某些 cookie。有没有办法查看我发布的实际数据? 或者,我可以使用 SharpDevelop 和所有 .Net 函数。有没有一种简单的方法来处理服务器和脚本生成的所有 cookie 和 javascript 变量?我在想的是,如果有任何浏览器组件或其他东西可以下载登录页面并准备好所有必需的数据(隐藏输入等)并允许我输入我的数据(用户名/密码)并获得网络许可网站页面。或者下载登录页面,编辑源代码以填写用户名/密码,然后将所有内容发回(就像我按下提交按钮一样)。
谢谢, 尼克
最佳答案
您可以分配 TIdLog...
组件,例如 TIdLogFile
或 TIdLogEvent
, 至 TIdHTTP.Intercept
属性(property)。这将向您显示 TIdHTTP
的原始 HTTP 数据。正在与服务器交换。消息在加密前和解密后记录,因此即使使用 SSL,您也会看到未加密的 HTTP 消息。您可以使用 Fiddler 查看真实的 Web 浏览器如何与服务器通信,然后将其与 TIdHTTP
进行比较对话。
通常,当您需要使用 TIdHTTP
自动进行 Web 登录时,您必须模仿网络浏览器中的用户会做什么。访问起始页面,让服务器在需要时重定向您,让服务器发送它需要的任何 cookie,然后您可以解析登录表单 HTML 以获取所需的任何字段值,然后使用 TStringList
提交它们或 TIdMultipartFormDataStream
,取决于网络表单本身的设置。等等。
还有一点要记住,有些服务器对 User-Agent
很敏感。请求 header ,发送针对特定 Web 浏览器定制的不同响应。所以你可以尝试设置 TIdHTTP.Request.UserAgent
属性设置为模仿主要 Web 浏览器之一的不同值。
关于.net - 通过安全连接(SSL、https)登录网站的简便方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21522039/