2

GPRS モデム (Siemens TC65) 用の Java アプリケーションを開発しています。さまざまな URL への HttpConnection を実行するメソッドを数回呼び出します。正常に動作することもありますが、オペレーターによってリダイレクトされることがあります (HTTP コード 302)。Location ヘッダーで提供されている URL をたどると、200 が返されますが、目的のページではありません。

gsm ペンで SIM カードを使用してブラウザでアクセスすると、同じリダイレクトが発生することがありますが、最終的に目的のページに到達します。問題は、モデムが Javascript を実行しないことです。そのため、JavaScript が何を行うのかを分析したところ、手順は次のようになりました。

page1 -> page2 -> page3 -> 目的のページ

ページ 1 とページ 2 は、URL とパラメーターの base64 コーディングを行います。ページ 3 は .aspx です。したがって、リダイレクトを取得するたびに、URL をエンコードして .aspx ページに送信すると、.aspx ページは Location ヘッダーで目的のページがデコードされた 302 を返します。次のリクエストで保存して送信する ASP.NET_SessionId を含む Cookie も返します。

しかし、これをすべて実行して、.aspx によって返された URL をたどっても (最初と同じです)、最初から開始され、リダイレクトの無限ループが発生します。

コードを投稿できますが、問題なく動作する場合があるため、問題はないと思います...問題は、オペレーターによる連続したリダイレクトであり、ブラウザーを実行していないことです。

aspx サーバーからのリダイレクトをたどる際に何か別の方法をとるべきですか?

誰かが同様の問題を抱えていましたか?助けていただければ幸いです。

前もって感謝します!ヒューゴ

4

1 に答える 1

1

私はそれを機能させることができました。

モデムは JavaScript を実行できないため、ページ 2 の JavaScript をプログラム内の独自のコードに置き換えました。結果を使用して、ページ3に送信しました。これは問題ありませんが、実際には page2 に対して HTTP リクエストを行っていませんでした。

正しい順序で 3 つのページを要求し、javascript が独自のコードで行った機能を複製して Cookie を保存すると、page3 の後、目的の Web ページへのリダイレクトを受け取り、以前のように再度リダイレクトしなくなります。page2 で行ったことをすべて行ったので、実際にはリクエストを行う必要はなく、page3 にスキップしただけであると判断しました。しかし、何らかの理由で私はそうします、なぜなら、おそらくaspセッションが実際にそのページで開始され、ページのソースコードに表示されないか、サーバーがページリクエストを監視します. なぜオペレーターがこれを行う必要があるのか​​ 理解できませんでした。JavaScriptを実行できないデバイス用に設計されていないため、古い携帯電話からのHTTP接続が切断される可能性さえあると思います.

次回は別の演算子 =p を使用します

ヒントとヘルプを提供してくれた Charles Forsythe に感謝します。

于 2013-04-03T16:32:17.230 に答える