我正在開發GPRS調制解調器(西門子TC65)的Java應用程序。 我多次調用一個方法來對不同的URL進行HttpConnection。有時它可以正常工作,但有時我會被我的操作員重定向(HTTP代碼302)。我按照位置標題中提供的URL返回200,但它不是我想要的頁面。J2ME HttpConnection無限重定向
如果我使用在GSM筆和訪問SIM卡瀏覽器,有時會發生相同的重定向,但我最終到達所需的頁面。問題是調制解調器不執行JavaScript,所以我分析的JavaScript做什麼和程序如下:
1頁 - >第2頁 - >第三頁 - >所需的頁面
1和Page 2做一些的base64 URL和參數的編碼,page3是一個.aspx。所以每次我得到一個重定向時,我編碼64我的URL併發送到.aspx頁面,.aspx頁面返回302,並在Location標題中解碼所需的頁面。它甚至會返回一個ASP.NET_SessionId的cookie,我保存併發送下一個請求。
但是即使我做這一切,並按照在.aspx(這是一樣的我開始)返回的URL,它只是從頭開始,我得到重定向的無限循環。
我可以張貼代碼,但我不認爲這有什麼問題,因爲它工作正常,有時...問題是由運營商相繼重定向和不運行的瀏覽器。
任何我應該做的不同,當試圖按照從aspx服務器重定向?
任何人有類似的問題嗎? 我將不勝感激任何幫助。
在此先感謝! 雨果
我很困惑。運行JavaScript的能力是否顯着?另外,您是否試圖從瀏覽器請求中捕獲請求頭並將它們與進入無限循環的'HttpConnection'請求進行比較?一種可能性(只是猜測)是它嗅探用戶代理並改變其行爲。標題中可能還有其他內容。 –
對不起,我知道它看起來很混亂。Javascript非常重要,因爲除了base64編碼外,從page2到page3的重定向都是由javascript完成的。所以我只是在程序中複製了這個過程,並要求page3。 是的,我檢查了瀏覽器中的標題,至少我認爲很重要。我甚至試圖使用無變換標題,如果我的運營商尊重它,我猜根本就不應該有任何編碼。 用戶代理我使用了我認爲是j2me的標準,我得到了系統配置文件和配置。 –
你可以發佈這些網頁的網址嗎?我猜測 - 只是猜測 - 可能會發生不同的重定向,因爲該網站可能認爲您是移動瀏覽器(基於您的用戶代理)。這就是爲什麼這可能很重要,但這只是一個猜測。 –