すべてのブラウザーで問題なく動作する URL がいくつかありますが、Indy Http クライアントの Get() を使用してページ コンテンツを取得しようとすると、エラー コード 500、内部サーバー エラーが返されます。これは、最新の Indy SVN ビルド (4981) を使用しています。
これが私のコード例です。これに必要なのは、Indy コンポーネントを含む Delphi と、ボタンとメモを含むフォームだけです。
procedure TForm1.Button1Click(Sender: TObject);
var HTTPCLIENT1: TIdHTTP;
begin
try
try
HTTPCLIENT1 := TIdHTTP.Create(nil);
Memo1.Clear;
with HTTPCLIENT1 do
begin
HandleRedirects := True;
Request.UserAgent := 'Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.3) Gecko/20040924 Epiphany/1.4.4 (Ubuntu)';
Memo1.Text := Get('http://www.laredoute.fr/vente-machine-a-coudre-bernette-20-kit-couture--garantie-2-ans.aspx?productid=401225048&documentid=999999&categoryid=22918417&customertarget=0&offertype=0&prodcolor=1#pos=33_n_n_n_n_n_n&numberpage=2');
Caption := ResponseText;
end;
except
On e: Exception do
begin
Memo1.Lines.Add('Exception: '+e.Message);
end;
end;
finally
HTTPCLIENT1.Free;
end;
end;
URL の 99% が 200 または 404 を返し、500 を返すものはほとんどないため、私の側では接続の問題ではありませんが、すべてのブラウザーで 1 秒以内に正常に開きます。