Come usare HttpURLConnection in Android

Una URLConnection per HTTP (RFC 2616) consente di inviare e ricevere dati attraverso il web.

appissue json
appissue json

Questi dati possono essere di qualsiasi tipo e lunghezza.

Questa classe può essere utilizzata per inviare e ricevere dati in streaming cui lunghezza non è nota in anticipo.

  • Ottenere un nuovo HttpURLConnection chiamando URL.openConnection () e lanciando il risultato di HttpURLConnection.
  • Preparare la richiesta. La struttura primaria di una richiesta è suo URI. (la richiesta può comprendere anchei metadati quali le credenziali, i tipi di contenuti preferiti e cookies di sessione.
    Opzionalmente si può caricare un corpo della richiesta.
  • Le istanze devono essere configurati con setDoOutput (vero) se includono un corpo.
  • I dati vengono trasmessi ad un flusso restituito da getOutputStream ().
  • si legge la risposta. Il corpo di risposta può essere letto dal flusso restituito da getInputStream (). Se la risposta non ha corpo, il metodo restituisce un flusso di vuoto.
  • Disconnect. Una volta che il corpo della risposta è stato letto, il HttpURLConnection dovrebbe essere chiuso chiamando disconnessione().  Questa  disconnessione rilascia le risorse detenute dalla connessione in modo che possano essere chiusi o riutilizzati.

vedi su android reference HttpURLConnection


private String getJSONString(String strUrl){
  InputStream is = null;
  URL url = null;
  BufferedReader br = null;
  StringBuilder sb = new StringBuilder();
   HttpURLConnection conn = null;
  String jsonString = null;
  try {
      url = new URL(strUrl);
      conn = HttpURLConnection)url.openConnection();
      //set the timeout in milliseconds
      conn.setReadTimeout(15000);
      //set the timeout in milliseconds
      conn.setConnectTimeout(15000);
      conn.setRequestMethod("GET");
      conn.setDoInput(true);
      conn.connect();

      // Log.d("-----url 1 ", String.valueOf(url));
      int response = conn.getResponseCode();
      is = new BufferedInputStream(conn.getInputStream());
      //Log.d("!!!!!!!!is  2", String.valueOf(is));
      br = new BufferedReader(new InputStreamReader(is));
      byte[] b = new byte[1024];
      // to implement try catch…
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      //readstream
      while ( is.read(b) != -1) {
        baos.write(b);
      }
      //Log.d("+sb 3 ", String.valueOf(sb));
      //String JSONResp= new String(baos.toByteArray());
       byte[] data1 = baos.toByteArray();
      // to implement try catch…
      jsonString = new String(data1);
      //Log.d("JSON jsonSTRing  ", jsonString);
      //call parse json data
       myFlag = parseJson(jsonString);
  } catch (MalformedURLException e) {
       e.printStackTrace();
  } catch (java.net.ProtocolException e) {
       e.printStackTrace();
  } catch (IOException e) {
       e.printStackTrace();
  }finally{
      if(br!=null){
          try {
              br.close();
              is.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
          if(conn!=null) {
              conn.disconnect();
          }
      }
  }
  return jsonString;
}

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...