Come posso fare connessioni URL asincrone su Android?

Sto utilizzando la seguente class per connettersi al mio servizio web. Vorrei rendere questo asincrono. Come posso fare questo?

package org.stocktwits.helper; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONException; import org.json.JSONObject; import android.util.Log; public class RestClient{ private static String convertStreamToString(InputStream is) { /* * To convert the InputStream to String we use the BufferedReader.readLine() * method. We iterate until the BufferedReader return null which means * there's no more data to read. Each line will appended to a StringBuilder * and returned as String. */ BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } /* This is a test function which will connects to a given * rest service and prints it's response to Android Log with * labels "Praeda". */ public static JSONObject connect(String url) { HttpClient httpclient = new DefaultHttpClient(); // Prepare a request object HttpGet httpget = new HttpGet(url); // Execute the request HttpResponse response; try { response = httpclient.execute(httpget); // Examine the response status Log.i("Praeda",response.getStatusLine().toString()); // Get hold of the response entity HttpEntity entity = response.getEntity(); if (entity != null) { // A Simple JSON Response Read InputStream instream = entity.getContent(); String result= convertStreamToString(instream); // A Simple JSONObject Creation JSONObject json=new JSONObject(result); // Closing the input stream will trigger connection release instream.close(); return json; } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } } 

  • Rimuovere la rottura di linea in TabLayout
  • Sviluppo di Android: Come get tutti i file di EditText di un gruppo di ViewGroup?
  • Come salvare un'image in un file?
  • Come controllare se APK è firmato o "build di debug"?
  • Il modo migliore per firmare un apk utilizzando ant in un file build.gradle
  • Applicazione Android all'evento
  • principale non può essere risolto o non è un field
  • android ottiene una miniatura di image memorizzata su sdcard il cui path è conosciuto
  • Animazione di piastrelle Google Plus
  • Ottieni contatti con l'ID di posta elettronica
  • Codifica dei caratteri predefiniti di Android
  • Come sfocare alcune porzioni di Image in Android?
  • 2 Solutions collect form web for “Come posso fare connessioni URL asincrone su Android?”

    Oltre a tutte le possibili soluzioni nel commento di Ladlestein, c'è la semplice risposta di avvolgere tutto ciò in un AsyncTask .

    È meglio utilizzare httpRequest su github. Ecco il link per te: http://kevinsawicki.github.io/http-request/

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.