2012-04-24 19 views
3

私はサーバー上で特定のPHP関数を呼び出し、またいくつかのパラメータを送信したいと思います。 これまで、私はHttpClientを使ってPHPファイルを開き、Jsonにデータ転送を実行し、それを私のアプリで表示できることを達成しました。 これで、特定の関数を呼び出してパラメータを送信できるようになりました。どうすればいいですか? 申し訳ありません私はAndroidからその機能を呼び出す必要があるという大邸宅はありませんでした。ここではいくつかのコードAndroidからPHP関数を呼び出す方法は?

:事前に

try { 
      HttpClient httpClient = new DefaultHttpClient(); 
      HttpPost httpPost = new HttpPost("http://10.0.2.2/posloviPodaci/index.php"); 
      HttpResponse response = httpClient.execute(httpPost); 
      HttpEntity entity = response.getEntity(); 

      is = entity.getContent(); 

     } catch (Exception e) { 
      Log.e("log_tag", "Error in http connection" + e.toString()); 
     } 

     // Convert response to string 
     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8); 
      sb = new StringBuilder(); 
      sb.append(reader.readLine() + "\n"); 

      String line = "0"; 
      while((line = reader.readLine()) != null){ 
       sb.append(line + "\n"); 
      } 
      is.close(); 
      result = sb.toString(); 

     } catch (Exception e) { 
      Log.e("log_tag", "Error converting result " + e.toString()); 
     } 

     // Parsing data 
     JSONArray jArray; 
     try { 
      jArray = new JSONArray(result); 
      JSONObject json_data = null; 

      items = new String[jArray.length()]; 

      for(int i = 0; i < jArray.length(); i++) { 
       json_data = jArray.getJSONObject(i); 
       items[i] = json_data.getString("naziv"); 
      } 

     } catch (Exception e) { 
      // TODO: handle exception 
     } 

おかげで、 ウルフ。

答えて

1

MVCフレームワーク(CakePHPなど)で作業している場合は、JSONを出力する関数へのルートを作成するだけです。

そうでない場合は、 あなたはこのようなあなたのindex.phpの先頭に単純なものを利用することができます

<?php 
    function foo($bar) { echo $bar; } 
    if(isset($_GET['action']) && (strlen($_GET['action']) > 0)) { 
     switch($_GET['action']) : 
     case 'whatever': 
      echo json_encode(array('some data')); 
      break; 
     case 'rah': 
      foo(htmlentities($_GET['bar'])); 
      break; 
     endswitch; 
     exit; # stop execution. 
    } 
?> 

これは、アクションのパラメータでURLを呼び出すようになります。

http://10.0.2.2/posloviPodaci/index.php?action=whatever

http://10.0.2.2/posloviPodaci/index.php?action=rah&bar=test

あなたはより多くの機密データを渡す必要がある場合、私はあなたが$ _POSTに固執し、暗号化のいくつかのフォームを利用してお勧めします。

+0

申し訳ありませんが。 – Wolf87

-1

これはPHP側で処理できます。 commandというフィールドと多分引数のリストを使ってJsonオブジェクトを作成します。

PHPの終わりには、あなたがJSONをデコードした後だけで実行します。私はのAndriodアプリを働いている、と私はそこから呼び出すこと入れていない

if($obj.command == "foo"){ 
    foo($obj.arg[0],$obj.arg[1]); 

} 
関連する問題