よろしくお願いします。
先の質問「WebからDLするファイル名の取得するには」の結果ですが
Delphi6PersonalにIndy9をインストールするのは大変そうなので一旦「解決」とさせて頂きIndy9を探して悪戦苦闘してIndy10と差し替えIndy9をインストールしました。
もにゃさんに教えて頂いた下記を実行するのですが、やはり
ReplyErrorCodeが未定義になるのですが、なにかuses節に追加するか
typeで定義するか、イベント定義をするとか、何かIndyコンポーネントを貼り付ける必要があるのでしょうか?
出来ましたら、どなたかご指導をお願いします。
(DLファイル名を事前に調べる)
uses IdHTTP;
IdHTTP1: TIdHTTP;
procedure TForm1.Button1Click(Sender: TObject);
var
s:String;
begin
s:='http://hpcgi2.nifty.com/Mr_XRAY/DLCounter/pl_lime.cgi?plSamplesDL';
try
Memo1.Text:= IdHTTP1.Get(s);
except
on e: EIdHTTPProtocolException do
case e.ReplyErrorCode of
302 :Memo1.Text:= IdHTTP1.Response.Location;
end;
end;
end;
ちなみに下記は作動しますのでIndy9は機能していると思うのですが。
IdHTTP1:=TIdHTTP.Create(nil);
try
memo1.Text:=IdHTTP1.Get('http://www.yahoo.co.jp/');
except
memo1.Lines.Add('Not');
end;
IdHTTP1.Free;
よろしくお願いします。
ReplyErrorCodeは、IdExceptionユニットにあるよ。
大抵毎日BBS見てますが、最悪1週間は来ない時もあります。
Indy9,10で動作確認しました。
同じソースで動いてます。
追加されてるユニットは
IdBaseComponent,
IdComponent,
IdTCPConnection,
IdTCPClient,
IdHTTP;
です、でも私の環境では自動的に追加されますがね。
確認したIndy versionは
Indy 10.1.5
indy 9.00.10
です。
ReplyErrorCodeはIdExceptionですが、
IdTCPConnectionから参照されてます。
Delphi7です。
>でも私の環境では自動的に追加されますがね。
それは、IdHTTPをコンポパレットからフォームにポトリペタした場合。
貼り付けずに動的生成する場合は必要なユニットを自分で追加しなくちゃね。
Indy10には ReplyErrorCodeは無いと思うけど。
あーうー
検索パス変更したらアイコンが変わったので
Indy10になったかと思いきやコンパイラがIndy9参照してました。
てな訳でIndy10だとReplyErrorCodeではなくてErrorCodeになってました。
知ってるなら教えてあげれば良いのに…
uses
IdBaseComponent,
IdComponent,
IdTCPConnection,
IdTCPClient,
IdHTTP
procedure TForm1.Button1Click(Sender: TObject);
var
s:String;
begin
s:='http://hpcgi2.nifty.com/Mr_XRAY/DLCounter/pl_lime.cgi?plSamplesDL';
try
Memo1.Text:= IdHTTP1.Get(s);
except
on e: EIdHTTPProtocolException do
begin
case e.ErrorCode of //変更
302 :Memo1.Text:= IdHTTP1.Response.Location;
end;
end;
end;
end;
もにゃさま、皆様、ありがとうございました。
無事、作動しました。
重ね重ね感謝いたします。
Indy9のバージョンが悪いのかと、バージョンを入れ替えたりしてあっぷあっぷやっておりました。
バージョンが違うとインストール方法も違い「へこたれ」ました。
おかげさまで大変勉強になりました。
ありがとうございました。
では。
ツイート | ![]() |