如何捕获 404 错误并从列表框中找到导致它的原因
How to catch 404 error and and find what causing it from listbox
我想捕获 404 错误异常并从 listbox1 中捕获导致此错误的项目并将其存储在 listbox2 中!
到目前为止我的代码:
procedure TForm1.Button3Click(Sender: TObject);
var
s: string;
lHTTP: TIdHTTP;
IdSSL : TIdSSLIOHandlerSocketOpenSSL;
i: Integer;
satir: Integer;
str: TStringList;
begin
lHTTP := TIdHTTP.Create(nil);
IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
lHTTP.ReadTimeout := 30000;
lHTTP.IOHandler := IdSSL;
IdSSL.SSLOptions.Method := sslvTLSv1;
IdSSL.SSLOptions.Method := sslvTLSv1;
IdSSL.SSLOptions.Mode := sslmUnassigned;
lHTTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP);
lHTTP.HandleRedirects := True;
satir := ListBox1.Items.Count;
str := TStringList.Create;
for i:= 0 to satir-1 do
begin
try
lHTTP.Get(ListBox1.Items.Strings[i]);
except
on E: EIdHTTPProtocolException do
begin
if E.ErrorCode <> 404 then
raise;
Break;
Memo1.Lines.Add(E.ErrorMessage);
end;
end;
end;
Finally
end;
end;
现在,当我按下按钮 3 时,备忘录 1 中没有添加任何内容
我需要帮助,非常感谢。
发生异常时将失败的URL(从ListBox1)添加到ListBox2即可:
try
lHTTP.Get(ListBox1.Items[i]);
except
on E: EIdHTTPProtocolException do
begin
if E.ErrorCode <> 404 then
raise;
Memo1.Lines.Add(E.ErrorMessage);
ListBox2.Items.Add(ListBox1.Items[i]);
end;
我想捕获 404 错误异常并从 listbox1 中捕获导致此错误的项目并将其存储在 listbox2 中!
到目前为止我的代码:
procedure TForm1.Button3Click(Sender: TObject);
var
s: string;
lHTTP: TIdHTTP;
IdSSL : TIdSSLIOHandlerSocketOpenSSL;
i: Integer;
satir: Integer;
str: TStringList;
begin
lHTTP := TIdHTTP.Create(nil);
IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
lHTTP.ReadTimeout := 30000;
lHTTP.IOHandler := IdSSL;
IdSSL.SSLOptions.Method := sslvTLSv1;
IdSSL.SSLOptions.Method := sslvTLSv1;
IdSSL.SSLOptions.Mode := sslmUnassigned;
lHTTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP);
lHTTP.HandleRedirects := True;
satir := ListBox1.Items.Count;
str := TStringList.Create;
for i:= 0 to satir-1 do
begin
try
lHTTP.Get(ListBox1.Items.Strings[i]);
except
on E: EIdHTTPProtocolException do
begin
if E.ErrorCode <> 404 then
raise;
Break;
Memo1.Lines.Add(E.ErrorMessage);
end;
end;
end;
Finally
end;
end;
现在,当我按下按钮 3 时,备忘录 1 中没有添加任何内容 我需要帮助,非常感谢。
发生异常时将失败的URL(从ListBox1)添加到ListBox2即可:
try
lHTTP.Get(ListBox1.Items[i]);
except
on E: EIdHTTPProtocolException do
begin
if E.ErrorCode <> 404 then
raise;
Memo1.Lines.Add(E.ErrorMessage);
ListBox2.Items.Add(ListBox1.Items[i]);
end;