procedure ReadFromURL(theURL: string);
var
httpClient: TFPHTTPClient;
FileContents: String;
theStatusCode: integer;
begin
httpClient := TFPHTTPClient.Create(nil);
try
FileContents := httpClient.Get(theURL);
theStatusCode := httpClient.ResponseStatusCode;
if theStatusCode = 200 then
begin
; // do something
end
else
ShowMessage(IntToStr(theStatusCode));
finally
httpClient.Free;
end;
end;
だけのような単純な例で正常に動作します fphttpclientは、ステータスコードは、他のケースでは200の例外を除いてhttpClient.Getでコードがクラッシュになるように、URLは、存在する場合プロシージャがtry ... finallyセクションを使用しています(try ... ...以外は何も変更されません)。このセクションでは、EHTTPClient、ESocketErrorまたはEXC_BAD_ACCESSクラスを使用しています。残念ながら、ステータスコードが処理される前に例外が発生します。
fphttpclientでエラーを処理するための推奨される方法は何ですか? メソッドを呼び出す前に、リソースの存在をチェックする方法がありますか(場合によってはURLの正しさも考えられますか)。
ありがとうございました。あなたの返信は私の問題を解決するのに役立ちました。 – jwdietrich