我以前在 Delphi 6 天时就使用过 Indy,现在我正在使用 Indy 10。我想做的事情非常简单,但我没有看到简单的方法,所以我一定错过了一些东西。
我想做的是这样的:
这是我正在使用的实际代码:
procedure TForm1.btnGetURLClick(Sender: TObject);
begin
moHeader.Lines.Clear;
moBody.Lines.Clear;
try
moBody.text := IdHttp1.Get(edURL.text);
finally
end;
end;
请求完成后,http_result 应包含指定 URL 中的 HTML。然而,这似乎不起作用,所以我觉得我也许应该使用组件的 IOHandler 属性或 OnWork 事件 - 但是用法对我来说似乎并不明显,而且我找不到任何工作示例与谷歌。我确信这是以前做过的事情,所以任何帮助将不胜感激。
附加信息:
本着更具体的精神,我想知道:
1. 我一开始就这样做了吗(或者我错过了什么?)。
2. 如果是这样,为什么它不起作用?
3.我使用的编译器/os/Indy的组合总是有可能存在bug。 (尽管它应该有效)。
我应该提到,我总是会弹出“连接正常关闭”的消息。这似乎是一个例外,它可能会干扰函数的结果。我试图用 TRY...FINALLY 来捕获这个问题,但它不起作用。我想可能是因为 Indy 在 Get 方法运行后在后台触发了异常。
最后,这里是程序运行的截屏视频,以消除任何困惑:http://screencast.com/t/NDMzNTQ5 http://screencast.com/t/NDMzNTQ5我希望 HTML 能够填充第二个备注框。
我认为你有 TIdHTTP。属性设置为 false,如果出现错误“HTTP/1.1 302 找到 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html“你可以试试这个
var
http_result:string;
Begin
IdHTTP1.HandleRedirects:=True;
http_result := IdHTTP1.Get('http://www.google.com');
End;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)