2 つの異なるクライアント HTTP で同じ要求を使用しました。1つはサーバーによって受け入れられ(IEのJavaリクエスト)、もう1つは受け入れられません(DelphiソフトウェアのIndy Client)?2 つのリクエストの違いを検出する方法はありますか?
Indy を使用していることを隠す方法はありますか?
よろしくお願いします
Fiddler2 をお勧めします。Fiddler2 は、それ自体をプロキシとして挿入し、優れたインスペクターを使用してすべての http/https トラフィックを記録します。 http://www.fiddlertool.com/fiddler2/version.asp
UserAgent は Request プロパティの下にあります。デフォルトでは、Indy のユーザー エージェント文字列は「Mozilla/3.0 (互換性あり; Indy Library)」です。FireFox、IE、またはその他の認識されているブラウザーで使用されている現在の文字列に変更します。
UserAgentStringサイトで例を見つけることができます。
詳細については、Indy KB PDFを参照してください。
Wireshark /tcpdump は、http 要求を分析する必要があるほとんどの状況で役に立ちます。
tcpdump を使用すると、サーバーで要求を記録し、キャプチャしたデータを Wireshark で分析できます。
あなたはパロスが一番似合うと思います。 http://www.parosproxy.org/
HTTP リクエストをオンザフライで監視、一時停止、カスタマイズできます。これはハッカー ツールですが、気に入っていただけるはずです。
Don's Proxyは、HTTP リクエストをキャプチャするための便利な無料ツールです。Java を使用していると書いているので、このツールに必要な JRE は既にインストールされていると思います。
次に、 TortoiseMergeまたはその他の diff ユーティリティを使用して 2 つのリクエストを比較します。
User-Agent について話している必要があります。Indy でどのように設定したかはわかりませんが、User-Agent HTTP ヘッダーは使用されているクライアントを識別するため、IE または別のブラウザーであるかのように設定できます。
また、HTTP スニファー (OSX では Scoop が適しています) を使用して、送信されているヘッダーを正確に確認し、ブラウザーとまったく同じように動作することを確認してください。
私は最終的に TidTCPClient を使用し、手動で POST 要求を作成しましたが、現在は機能しています (もう長い時間です)。
理由はまだわかりませんが、この面倒を見る時間がありません。