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