2015-10-01 35 views
0

我想創造我想要從Android將請求發送到PHP服務器這樣的基本應用:http://www.eg.com/eg.php?a=blabla:blablabla:bla如何網址paremeters發送到PHP服務器並取回響應到Android

然後,當我得到這個數據我想要做這樣的事情:

if(isset($_GET['a'])) { 

    $a = $_GET['a']; 

    $array = explode(':', $a); 

    $data1 = $array[0]; 

    if($data1 == "blabla") { 

     Send response to android here.. 
    } 
} 

的問題是,我不知道如何將數據從機器人發送和回PHP服務器。我看了很多答案,但大多數發送json數據或使用depreciated apache http庫,或者不講任何有關php服務器端或特定於該人的secnario的東西。請你給我如何做這是一個非常明確的答案,謝謝:)

如果有已經涵蓋這個問題的答案,請投票我失望之前提供的URL,這個問題的答案我的。

+0

發送數據eppending一起網址是什麼?和名稱值對,因爲我看得出來,你只使用GET在PHP方法,和u可以通過JSON對象接收和Android的最終解析它 – KOTIOS

+0

爺我不介意使用JSON對象,但我不知道如何做到這一點在Android那麼我不知道如何發送回從PHP到Android的響應,並接收Android上的數據。你能告訴我一個例子嗎? :) – edwinj

+1

http://stackoverflow.com/questions/32226832/android-and-php-creating-an-api這一個可以幫助你的方式來使用namevalue對 –

回答

0

我終於找到隨着研究的意見和時間的幫助下簡單的解決方案:

你可以簡單的調用該方法通過使用這樣的:

HashMap<String , String> postDataParams = new HashMap<String, String>(); 

postDataParams.put("name", "value"); 

performPostCall("URL", postDataParams); 

Java代碼:

public String performPostCall(String requestURL, 
            HashMap<String, String> postDataParams) { 

     URL url; 
     String response = ""; 
     try { 
      url = new URL(requestURL); 

      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.setReadTimeout(15000); 
      conn.setConnectTimeout(15000); 
      conn.setRequestMethod("POST"); 
      conn.setDoInput(true); 
      conn.setDoOutput(true); 


      OutputStream os = conn.getOutputStream(); 
      BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(os, "UTF-8")); 
      writer.write(getPostDataString(postDataParams)); 

      writer.flush(); 
      writer.close(); 
      os.close(); 
      int responseCode=conn.getResponseCode(); 

      if (responseCode == HttpsURLConnection.HTTP_OK) { 
       String line; 
       BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream())); 
       while ((line=br.readLine()) != null) { 
        response+=line; 

        Log.e("Res:", response); 
       } 
      } 
      else { 
       response=""; 

      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return response; 
    } 

    private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException { 
     StringBuilder result = new StringBuilder(); 
     boolean first = true; 
     for(Map.Entry<String, String> entry : params.entrySet()){ 
      if (first) 
       first = false; 
      else 
       result.append("&"); 

      result.append(URLEncoder.encode(entry.getKey(), "UTF-8")); 
      result.append("="); 
      result.append(URLEncoder.encode(entry.getValue(), "UTF-8")); 
     } 

     return result.toString(); 
    } 

在PHP方面,你可以通過使用得到的數據:

$_POST['name'] 

,你可以通過簡單地這樣做回送響應:

echo "response here.."; 
相關問題