IdHTTPのGetで範囲チェックエラー


ボンビー  2007-03-09 23:11:30  No: 25225

こんにちは

IdHTTPでヤフー(http://www.yahoo.co.jp)をGetすると
範囲チェックエラーが出てしまいます。

過去ログを検索した結果、同じような症状のログを
見つけたのですが、エラー内容が違うため投稿させて頂きました。

[開発環境]
WindowsXP+SP2
Developer Studio 2006
Indy10

よろしくお願いします。


みえない  2007-03-10 00:52:55  No: 25226

IdHTTPでヤフー(http://www.yahoo.co.jp)をGetしただけでは
そんなエラーは出ない。Getしてからナニしてる?


ボンビー  2007-03-10 01:39:16  No: 25227

返信ありがとうございます。

実際のソースはボタン押下時に下記の処理をさせているだけです。
var
Contents:string;
begin
IdHTTP1 := TIdHTTP.Create;
Contents := IdHTTP1.Get('HTTP://www.yahoo.co.jp');
end

もしかして、String型にコンテンツを突っ込んでるのが問題なのでしょうか?

もしそうならこの後の処理で取得したHTMLから正規表現を使って部分的に
文字列を取り出したいと考えているのですがどうしたらいいのでしょうか?

よろしくお願いします。


ボンビー  2007-03-10 02:06:01  No: 25228

その後、他のサイトに同様のことをすると全く問題なく
Contents変数にHTMLを格納することに成功しました。
・Google(Shift-jis)  ○
・Goo(UTF-8)  ○
・Yahoo(EUC-JP)  ×

やっぱり文字コードとかの影響でしょうか


まだみえない  2007-03-10 06:37:57  No: 25229

他のEUCサイト(http://www.infoseek.co.jp/など)では
ホントにそこで範囲チェックエラーが出るなら「スイッチ指令」入れてみたら?
{$R-}
  Contents := IdHTTP1.Get('HTTP://www.yahoo.co.jp');
{$R+}


ボンビー  2007-03-10 06:52:54  No: 25230

Infoseekは問題ありませんでした。
ほかのEUCサイトもやってみましたがエラーでませんでした。
スイッチ命令の使い方がよくわかりません。
間にはさんでコンパイルすればいいのでしょうか?


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

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






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