2011-08-25 51 views
0

我有一個HTTP POSTHttpPost和HttpRequest的多個響應

  try { 
      String response1 = null; 
      response1 = CustomHttpClient.executeHttpPost(
        "http://giveaway.synamegames.com/appfiles/login.php", 
        postParameters); 
      String res = response1.toString(); 
      // res = res.trim(); 
      res = res.replaceAll("\\s+", ""); 
      if (res.equals("2350") && checkboxv.equals("1")) { 
       Intent login = new Intent(this, MainMenuActivity.class); 
       login.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
       startActivity(login); 
       SavePreferences("lu", et_username.getText().toString()); 
       SavePreferences("lp", et_pass.getText().toString()); 
       SavePreferences("cbauto", "1"); 
      } else if (res.equals("2350") && checkboxv.equals("0")) { 
       Intent login = new Intent(this, MainMenuActivity.class); 
       login.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
       startActivity(login); 
       SavePreferences("lu", ""); 
       SavePreferences("lp", ""); 
       SavePreferences("cbauto", "0"); 
      } else if (res.equals("1000")) { 
       Toast.makeText(this, "Incorrect version. Please update.", 
         Toast.LENGTH_SHORT).show(); 
      } else if (res.equals("588")) { 
       Toast.makeText(this, "Incorrect Password or Username.", 
         Toast.LENGTH_SHORT).show(); 
      } else { 
       Toast.makeText(this, 
         "Server Error. Please try again later.", 
         Toast.LENGTH_SHORT).show(); 
      } 
     } catch (Exception e) { 
     } 

如果我的回答是1000,2350,等它會給Android手機具體的迴應。不過,我想我的數據庫給android數據庫信息。在我的情況下,我有 玩家註冊並輸入他們的名字,電子郵件,用戶名和密碼。登錄後,我希望手機檢索用戶在創建帳戶時分配的名稱。出於安全原因,我無法將這些信息存儲在手機中。我可以有多個HTTP帖子,但這隻會降低應用程序的速度。我的問題是...

是否有任何可能的方式,我可以檢索多個響應,並將這些響應放入不同的字符串,而不必做另一個http文章?

+0

你是否說基本上成功登錄後,你需要進行另一個http調用來獲取用戶的名稱,他們正在註冊? – momo

+0

是的,我還需要獲得他們在註冊時輸入的其他信息 – Drake

回答

0

如果您還在設計服務器端,我會做的是基本上返回配置文件信息作爲JSON格式的響應的一部分。您可以使用Android的JSONObject解析來自服務器的JSON響應。因此,對於成功登錄您的應答串看起來像

 

{ 
    "response" : { 
     "responseCode" : 2350, 
     "userProfile" : { 
      "name" : "Me", 
      "email" : "[email protected]" 
     } 
    } 
} 
 

而對於未能響應

 

{ 
    "response" : { 
     "responseCode" : 588 
    } 
} 
 

這樣,您就不必做2次HTTP調用,並會爲您節省從另一個之旅服務器

+0

您能否給我一個關於如何編碼php的示例?只是回聲? 更精確地顯示代碼的外觀。提前致謝! – Drake

+0

是的,幾乎只是迴應它的基本原理。你可能想要利用JSON PHP庫http://php.net/manual/en/book.json.php,尤其是json_encode http://php.net/manual/en/function.json-encode.php。大量的評論中的例子讓你走 – momo