2012-10-08 70 views
2

我的銀行有一個我想要自動登錄的移動網站。 這是網頁https://ib.absa.co.za/ib/AuthenticateW.do?icmpid=BAC00414通過android webview自動登錄網站問題

這是我的代碼到目前爲止。

browser = (WebView)findViewById(R.id.webView1); 
    browser.getSettings().setJavaScriptEnabled(true); 

     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("AccessAccount", "my_account_nr")); 
     nameValuePairs.add(new BasicNameValuePair("PIN", "my_pin")); 

     try { 
      browser.loadData(CustomHttpClient.executeHttpPost(BASE_URL, nameValuePairs), "text/html", "utf-8"); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

BASE_URL是頂部的鏈接。我從http://code.google.com/p/virtualwalks/source/browse/trunk/virtualwalks/project7/Android/CustomHttpClient.java?spec=svn177&r=177

這裏得到了CustomHttpClient是網頁標題:

申請網址:https://ib.absa.co.za/ib/AuthenticateW.do icmpid = BAC00414

請求方法:GET

狀態代碼:200 OK

請求Headersview源

接受:text/html的,應用/ XHTML + xml的,應用/ XML; Q = 0.9,/; Q = 0.8

接收字符集:ISO-8859-1,utf-8; Q = 0.7, *; q = 0.3

接受編碼:gzip,緊縮,SDCH

接受語言:EN-US,EN; q = 0.8,自動對焦; q = 0.6

連接:保持活躍

主持人:ib.absa.co.za

Referer:http://www.absa.mobi/

User-Agent:Mozilla/5.0(Linux; U; Android 2.3.6; EN-US; Nexus S Build/GRK39F) AppleWebKit/533.1(KHTML,如Gecko)Version/4.0 Mobile Safari/533。1

查詢字符串Parametersview URL編碼

icmpid:BAC00414

響應Headersview源

緩存控制:無緩存,必須-重新驗證

連接:保持活動

內容編碼:gzip

內容語言:zh-CN

的Content-Type:text/html的;字符集= ISO-8859-1

日期:星期三,2012年10月10日7時57分50秒GMT

過期:孫,1970年7月12日2:00:00 GMT

保持活動:超時= 10,最大= 20

雜注:無緩存

的Set-Cookie:JSESSIONID = 0000CTls0Onsd_DJkBrN0FLy9eq:11l21e8a2;路徑=/IB;域= absa.co.za;安全

傳輸編碼:分塊

有所不同:接受編碼,用戶代理

和HTML代碼:

<html> 

Absa手機銀行服務

<body text="#000000" bgcolor="#FFFFFF"> 
    <p align="left" style="text-align:left;" class="pgHeadTop"><img src="/ib/images/wap/menu/absa_98x27.gif" alt="Logo" border="0"> <p align="left" style="text-align:left;" class="pgHeadBottom">Logon </p> 

     <form action="https://vs1.absa.co.za/ib/AuthenticateW.do;jsessionid=0000CTls0Onsd_DJkBrN0FLy9eq:11l21e8a2" method="post" autocomplete="OFF"><input type="hidden" name="_channelIdentifier_" value="W"> 


       <p align="left" style="text-align:left;"> 
        <p align="left" style="text-align:left;" class="tooltip">Enter your access account number</p> 
        <input type="text" name="AccessAccount" value="" maxlength="16" size ="16" istyle="4"> 
       </p> 

      <p align="left" style="text-align:left;"> 
       <p align="left" style="text-align:left;" class="tooltip">Enter your PIN</p> 
       <input type="password" name="PIN" value="" maxlength="5" size ="5" istyle="4"> 
      </p> 
      <p align="left" style="text-align:left;"> 
       <p align="left" style="text-align:left;" class="tooltip">Enter your user number</p> 
       <input type="text" name="user" value="1" maxlength="4" size ="5" istyle="4"> 
      </p> 
      <p align="left" style="text-align:left;"> 
       <p align="left" style="text-align:left;" class="heading">It is your responsibility to ensure the secrecy of your PIN number.</p> 
      </p> 
      <p align="left" style="text-align:left;"> 
       <input type="submit" name="button_processPIN" value="Next &gt;" /><input type="hidden" name="processPIN_params" value="controller=com.sirius.apps.ib.view.wap.user.AuthenticateCntrl&amp;state=processPIN"/><input type="hidden" name="processPIN_encoding" value="u"/><input type="hidden" name="cmd" value="button"/> 
      </p> 
      <input type="hidden" name="AUTH_RND" value="a2f7ea6e"> 
      <input type="hidden" name="JAVASCRIPT" value="Y"> 
      <input type="hidden" name="LOGON" value="1"> 
     </form> 
     <p align="left" style="text-align:left;" class="pageFooter"><a href="https://ib.absa.co.za/ib/RegisterW.do;jsessionid=0000CTls0Onsd_DJkBrN0FLy9eq:11l21e8a2?_Uid_=1&amp;_channelIdentifier_=W&amp;_language_=en" style="color:#FFFFFF;">Register</a> | <a href="https://ib.absa.co.za/ib/ContactUsW.do;jsessionid=0000CTls0Onsd_DJkBrN0FLy9eq:11l21e8a2?_Uid_=1&amp;_channelIdentifier_=W&amp;_language_=en" style="color:#FFFFFF;">Contact</a> | </p><p align="right" style="text-align:right;" class="body"><img src="/ib/images/wap/menu/barclays_84x25.gif" alt="Barclays" border="0"></p> 



</body> 

如果我運行該程序,它只是加載登錄頁面。

只是希望有人能夠對此有所瞭解,如果可能的話,或者如果我的代碼有缺陷/缺乏/愚蠢。

回答

0

它們可能與用戶代理匹配,並且在使用此自定義http客戶端時可能沒有有效的用戶代理。

將用戶代理設置爲與您的Android瀏覽器使用的相同,您應該可以加載該頁面。此

一個可能的值是:

Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2 – G1 Phone 

否則,把它編程:Retrieve User-Agent programmatically

+0

感謝您的答覆,但這不是它。通過將BASE_URL更改爲https://ib.absa.co.za/ib/AuthenticateW.do;jsessionid=0000jZVR5d-ZE4uCMrzIGIW_euZ:11I9gc802?_channelIdentifier_=W&_language_=en,但現在它只是加載登錄頁面並忽略我的自動登錄嘗試。任何想法,將不勝感激。 – LeftOfHere