TIdHTTPでURLに/=/を含むときにGetするには?

解決


Azael  2013-06-13 15:30:58  No: 44680  IP: 192.*.*.*

TIdHTTPでURLに/=/を含むときにGetするにはどうしたらいいでしょうか?

IdHTTP.Get('http://www.dmm.co.jp/dc/doujin/-/ranking-all/=/term=hourly/', Stream);

このようにすると、
dmm.co.jp/dc/doujin/-/ranking-all/=/term=hourly/
ではなくて
dmm.co.jp/dc/doujin/-/ranking-all/
の内容を取得してしまいます。

編集 削除
Quest  2013-06-13 17:08:29  No: 44681  IP: 192.*.*.*

取り敢えず、URLエンコードでググってみてください。
それでも判らなければ、環境などの情報をお願いします。

編集 削除
Azael  2013-06-13 19:53:22  No: 44682  IP: 192.*.*.*

URLエンコードで検索しても、よくわかりません。
半角の"="や"/"は、普段エンコードされませんよね。
そういう問題ではないのでしょうか。

私の環境は、
Windows XP
Delphi 2009
Indy 10
です。

よろしくお願いします。

編集 削除
take  2013-06-14 08:22:40  No: 44683  IP: 192.*.*.*

ちょっと検索しただけで色々出てきますよ
「* - . @ _」
以外の記号はエンコードされるってなってますね

パラメータとしての nn=vv の部分だけは
エンコードしないようですけどね

編集 削除
KHE00221  2013-06-14 09:50:12  No: 44684  IP: 192.*.*.*

<title>を見る限り 7 XE2 で取得できるよ?

    //24時間総合ランキング1〜20位 - 同人ダウンロード
    Memo1.Lines.Add(IdHTTP1.Get('http://www.dmm.co.jp/dc/doujin/-/ranking-all/=/term=hourly/'));

    //月間総合ランキング1〜20位 - 同人ダウンロード
    Memo1.Lines.Add(IdHTTP1.Get('http://www.dmm.co.jp/dc/doujin/-/ranking-all/'));

編集 削除
Quest  2013-06-14 13:05:58  No: 44685  IP: 192.*.*.*

Delphi2009をインストールしていないので
WindowsVista、Delphi2007、Indy10 Ver10.1.5と
WindowsXP Pro、Delphi2010、Indy10 Ver10.5.5で試しましたが
URLエンコードは意識せず、KHE00221さんと同じ方法で取得できましたよ。
WindowsとDelphiのバージョンの組み合わせがチグハグですが(^^;

編集 削除
Azael  2013-06-14 16:16:21  No: 44686  IP: 192.*.*.*

みなさんありがとうございます。

http://ht-deko.minim.ne.jp/tech033.html
このサイトを参考にして、Indyをアップグレードしたら解決しました。

編集 削除