2017-07-05 8 views
0

Hallo Ich habe Probleme, die Antwort meiner URL von meinem Host zu erhalten. Ich habe versucht, statische Variablen zu setzen und es funktionierte, aber als ich versuchte, eine asynctask für die Antwort zu verwenden, hat es nicht funktioniert.AsyncTask gibt keine Antwort zurück

<?PHP 
include_once('connection.php'); 

$where=''; 

if(isset($_GET['userLat']) && isset($_GET['userLng'])){ 

$where = "WHERE ((userLat >= '".addslashes($_GET['userLat'])."' AND userLat <= '".addslashes($_GET['userLat'])."' + .00901) OR (userLat <= '".addslashes($_GET['userLat'])."' AND userLat >= '".addslashes($_GET['userLat'])."' - .00901)) AND ((userLng >= '".addslashes($_GET['userLng'])."' AND userLng <= '".addslashes($_GET['userLng'])."' + .014935) OR (userLng <= '".addslashes($_GET['userLng'])."' AND userLng >= '".addslashes($_GET['userLng'])."' - .014935))"; 

    $query = "SELECT * FROM tbl_user ".$where." AND isOnline = 'Yes' LIMIT 1 "; 
$result = mysqli_query($conn, $query); 

$json = array(); 

if(mysqli_num_rows($result)){ 
    while($row = mysqli_fetch_assoc($result)){ 
    $json['details'][]=$row; 
} 
} 
mysqli_close($conn); 
echo json_encode($json); 
} 
?> 

AsyncTask

private class JsonTask extends AsyncTask<String, String, String> { 

    protected void onPreExecute() { 
     super.onPreExecute(); 

     pd = new ProgressDialog(getActivity()); 
     pd.setMessage("Checking nearby wingmans"); 
     pd.setCancelable(false); 
     pd.show(); 
    } 

    protected String doInBackground(String... params) { 


     HttpURLConnection connection = null; 
     BufferedReader reader = null; 

     try { 
      URL url = new URL(params[0]); 
      connection = (HttpURLConnection) url.openConnection(); 
      connection.connect(); 

      InputStream stream = connection.getInputStream(); 

      reader = new BufferedReader(new InputStreamReader(stream)); 

      StringBuffer buffer = new StringBuffer(); 
      String line = ""; 

      while ((line = reader.readLine()) != null) { 
       buffer.append(line + "\n"); 
       Log.d("Response: ", "> " + line); //here u ll get whole response...... :-) 

      } 

      return buffer.toString(); 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      if (connection != null) { 
       connection.disconnect(); 
      } 
      try { 
       if (reader != null) { 
        reader.close(); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     if (pd.isShowing()) { 
      pd.dismiss(); 
     } 
     request = result; 
     Log.d("Test", result); 
    } 
} 

, wie ich meine

url nennen
 btnEmergency.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String url = "http://10.0.2.2/wingman/emergency.php?userLat="+tvLat.getText().toString()+"ANDuserLng="+tvLng.getText().toString(); 
      new JsonTask().execute(url); 
     } 
    }); 

Danke Jungs, ich hoffe, dass ich eine Antwort auf meine Frage zu bekommen. Danke :)

+0

zeigt es ein Ausnahmeprotokoll? –

+0

sollten Sie wirklich das Protokoll veröffentlichen, dies kann eine Menge Gründe sein, Internet-Erlaubnis ist die erste Sache, die in den Sinn kommt – yanivtwin

+0

@UsmanRana - keine Ausnahme Protokoll entweder – Batz

Antwort

0

Sehr dumm von mir. Ich jsut die AND-& in meiner url ändern von

String url = "http://10.0.2.2/wingman/emergency.php?userLat="+tvLat.getText().toString()+"ANDuserLng="+tvLng.getText().toString(); 

zu

String url = "http://10.0.2.2/wingman/emergency.php?userLat="+tvLat.getText().toString()+"&userLng="+tvLng.getText().toString(); 

Und es funktionierte. Vielen Dank!

Verwandte Themen