2011-10-17 38 views
0

我想從受用戶名和密碼保護的服務器提取一些數據。我知道用戶名和密碼。由於服務器處於活動狀態,數據不斷變化,我需要每分鐘獲取一次數據以更新應用程序的狀態。我所知道的唯一功能,能夠獲取數據,並把它轉化爲一個字符串:Android服務器數據提取

private String getPage() { 
      String str = "***"; 

      try 
      { 
       HttpClient hc = new DefaultHttpClient(); 
       HttpPost post = new HttpPost("http://mywebsite.me"); 
       HttpResponse rp = hc.execute(post); 

       if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) 
       { 
        str = EntityUtils.toString(rp.getEntity()); 
       } 
      }catch(IOException e){ 
       e.printStackTrace(); 
      } 

      return str; 
     } 

由於服務器有一個登錄界面,我不知道如何將它傳遞。所以,我想幫助2 thigs:1.從服務器獲取數據和2.每隔1或2分鐘我需要刷新我的應用程序並再次獲取數據。

回答

0

你可以試試這個帖子對象。這種方式進行先發認證。

HttpPost post = new HttpPost(url); 

    // Prepare the authentication. 
    String usernameAuth = "u"; 
    String passwordAuth = "p"; 
    post.addHeader("Authorization", "Basic " + 
      Base64.encodeToString((usernameAuth + ":" + passwordAuth).getBytes("UTF-8"), 
       android.util.Base64.NO_WRAP)); 

對於定期運行以下命令:

mTimer.scheduleAtFixedRate(new TimerTask() { 
    @Override 
    public void run() { 
     // What you want to do goes here 
    } 
    }, 0, REFRESH_TIME); 

我希望它能幫助。

+0

而不是REFRESH_TIME我把時間放在毫秒或秒內,或者如何插入刷新時間? – Teo

+0

時間以毫秒爲單位。 – 500865