我在使用 Delphi 和 Indy 9/10 从特定 Web 服务器接收 favicon.ico 时遇到问题。其他服务器工作正常。问题不在于此 Web 服务器,因为 wget 命令行实用程序可以正确获取文件。
这是 wget 的输出:
c:\a>wget http://perforce.eigenbase.org:8080/favicon.ico
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = c:/progra~1/wget/etc/wgetrc
--2013-01-27 00:12:39-- http://perforce.eigenbase.org:8080/favicon.ico
Resolving perforce.eigenbase.org... 72.14.190.177
Connecting to perforce.eigenbase.org|72.14.190.177|:8080... connected.
HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9
Length: unspecified
Saving to: `favicon.ico'
[ <=> ] 2.862 --.-K/s in 0s
2013-01-27 00:12:40 (143 MB/s) - `favicon.ico' saved [2862]
这是我的 Delphi Indy 9/10 示例代码。它生成一个“正常关闭连接”异常,结果是一个空字符串。
procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
s := '';
try
s := IdHTTP1.Get('http://perforce.eigenbase.org:8080/favicon.ico');
except
on E: Exception do
begin
{$IFDEF DEBUG}ShowMessage('get error:'+E.Message){$ENDIF};
end;
end;
ShowMessage(IntToStr(Length(s)));
end;
如果我在不同的服务器上尝试相同的代码,例如:
s := IdHTTP1.Get('http://www.google.com/favicon.ico');
一切正常。
是否有解决方法可以使用 IdHTTP1.Get 从服务器获取http://perforce.eigenbase.org:8080/favicon.ico文件?