2011-11-11 22 views
0

我試圖通過在瀏覽器中輸入值來訪問HTTPS連接,它似乎工作正常,並將我重定向到期望的頁面/輸出。但是當我使用代碼嘗試相同時,我無法得到結果。我嘗試將UserAgent設置爲(Mozilla/5.0(BlackBerry; U; BlackBerry 9800; en-GB)AppleWebKit/534.1 +(KHTML,如Gecko)Version/6.0.0.141 Mobile Safari/534.1 +)。但沒有運氣。我獲得了可信連接警報,當我單擊繼續時,我會得到響應代碼302.如何實現安全連接證書以禁用可信連接警報。黑莓用戶代理和https重定向url

我習慣httpsconnection打開URL返回響應代碼302.Again我

if (rc == HttpConnection.HTTP_TEMP_REDIRECT 
      || rc == HttpConnection.HTTP_MOVED_TEMP 
      || rc == HttpConnection.HTTP_MOVED_PERM) { 
    String location = conn.getHeaderField("location").trim(); 
    System.out.println("location========"+location); 
    try { 
     Url = location; 
     newhttpConn = (HttpConnection) Connector.open(Url, Connector.READ_WRITE); 
     newhttpConn.setRequestMethod(HttpConnection.POST); 
     newhttpConn.setRequestProperty("User-Agent", 
       System.getProperty("browser.useragent")); 
    } catch (Exception e) {        
     System.out.println(e.toString());    
    } 

檢查,但是沒有用我從重定向URL獲得相同的302。

編輯:

也請給一些想法,讓相當於給了HTTPClient在HTTPSConnection工作的功能。我如何獲得這些功能。如果沒有可能在黑莓中使用Httpclient,那麼我如何利用黑莓HTTPS連接等價於Httpcleint(或)獲得自動重定向?

當connector.open(URL)excutes我得到這樣

SSL:->CH 
SSL:<-SH 
SSL:<-SC 
SSL:<-SHD 
TLS:->CKE 
SSL:->CCS 
TLS:->F 
TLS:<-F 
在輸出控制檯

那麼錯誤的反應顯示。

回答

1

我越來越受信任的連接警告,當我點擊繼續,我得到響應碼302

這是完全可以預料的行爲。

302 means請求的資源位於其他某個URI上。換句話說,服務器指示您執行重定向。您應該調查連接標頭,並在名爲「位置」的連接標頭中找到一個新的URI以繼續。關閉/確定您當前的連接併爲剛剛獲得的重定向URI啓動一個新連接。

UPDATE

通常好服務器用HTTP 302成功完成POST後作出迴應。這是一個已知的Post/Redirect/Get pattern,用於防止用戶在瀏覽器頁面刷新上發佈相同的數據(用戶可以在桌面瀏覽器中按F5)。因此,如果您通過POST訪問的頁面是爲常用瀏覽器設計的,那麼這可能意味着您的POST成功,您不需要執行重定向請求。至少,如果您需要某些結果評估的響應,那麼不要使用POST重定向,這次使用GET。

+0

謝謝你提供有用的建議。我想發送瀏覽器信息在useragent的網址,然後它給出正確的輸出。所以我使用os6.0,並嘗試在瀏覽器中得到正確的輸出。以同樣的方式,我在httpconnection中發佈了useragent並獲得了302響應,然後我使用了GET方法,但獲得了相同的302響應。 – Gopinath

+0

我使用了conn.getHeaderField(「location」)。trim()來獲取重定向url。它是否正確?然後我用Http GET的新方法,但沒有用。 – Gopinath

+0

userAgent = System.getProperty(「browser.useragent」); conn.setRequestProperty(「User-Agent」,userAgent); – Gopinath