質問「WebからDLするファイル名の取得するには」の結果

解決


武田  2008-03-30 23:39:11  No: 30305

よろしくお願いします。
先の質問「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;

よろしくお願いします。


お疲れさま  2008-03-31 00:30:18  No: 30306

ReplyErrorCodeは、IdExceptionユニットにあるよ。


もにゃ  2008-03-31 01:14:58  No: 30307

大抵毎日BBS見てますが、最悪1週間は来ない時もあります。
Indy9,10で動作確認しました。
同じソースで動いてます。
追加されてるユニットは
IdBaseComponent, 
IdComponent, 
IdTCPConnection,
IdTCPClient, 
IdHTTP;
です、でも私の環境では自動的に追加されますがね。
確認したIndy versionは
Indy 10.1.5
indy 9.00.10
です。

ReplyErrorCodeはIdExceptionですが、
IdTCPConnectionから参照されてます。


もにゃ  2008-03-31 01:15:52  No: 30308

Delphi7です。


場合により  2008-03-31 01:43:39  No: 30309

>でも私の環境では自動的に追加されますがね。
それは、IdHTTPをコンポパレットからフォームにポトリペタした場合。
貼り付けずに動的生成する場合は必要なユニットを自分で追加しなくちゃね。
Indy10には ReplyErrorCodeは無いと思うけど。


もにゃ  2008-03-31 02:44:42  No: 30310

あーうー
検索パス変更したらアイコンが変わったので
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;


武田  2008-03-31 07:43:31  No: 30311

もにゃさま、皆様、ありがとうございました。
無事、作動しました。
重ね重ね感謝いたします。
Indy9のバージョンが悪いのかと、バージョンを入れ替えたりしてあっぷあっぷやっておりました。
バージョンが違うとインストール方法も違い「へこたれ」ました。
おかげさまで大変勉強になりました。
ありがとうございました。
では。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加