Android Async Http Obtener solicitud

Estoy tratando de implementar una clase httpClient que es un AsyncTask (de lo contrario me sale una excepción debido a tener una conexión en mi hilo principal). He intentado algo como esto:

private class execHttpAsync extends AsyncTask <String, String, HttpResponse> { public String resultString; @Override protected HttpResponse doInBackground(String... params) { String url = params[0]; HttpClient httpClient = new DefaultHttpClient(); HttpGet request = new HttpGet(url); request.setHeader("Content-Type", "text/xml"); HttpResponse response; try { response = httpClient.execute(request); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return response; } @Override protected void onPostExecute(HttpResponse result) { StringBuffer returned = new StringBuffer(); InputStream content = result.getEntity().getContent(); BufferedReader rd = new BufferedReader(new InputStreamReader(content, "UTF-8")); String line; while ((line = rd.readLine()) != null) { String endOfLine = ""; returned.append(line + endOfLine); } content.close(); String retVal = returned.toString(); try { String header = retVal.substring(0, 1); if (!header.equals("<")) { retVal = retVal.replace(header, ""); } } catch (Exception e) { // TODO: handle exception } resultString = returned.toString(); } } 

Pero necesito obtener la respuesta al final. He intentado instanciar esta clase y luego obtener la respuesta como un miembro, pero que no funcionó. Alguna sugerencia ?

Intenta de esta manera

 private class DownloadWebPageTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... urls) { String response = ""; for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader(new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } } catch (Exception e) { e.printStackTrace(); } } return response; } @Override protected void onPostExecute(String result) { textView.setText(result); } } 

Esta es la operación asincrónica, por lo tanto cualquier cosa como:

 myRetValue = new myAsyncTask.execute(); 

NO asignará el valor de retorno de onPostExecute() a myRetValue. Tu

 resultString = returned.toString(); 

Debe resultar en tener lo que returned.toString() producido asignado a la variable resultString (que supongo que se declara fuera de su clase AsyncTask, por lo que básicamente su código se ve bien a primera vista. Simplemente no puede tener nada en returned . Su código AsyncTask e inspeccionar si realmente se comporta como usted piensa que lo hace.

  • ¿Detectar si url especificada es una imagen en Android?
  • Javax.net.ssl.SSLException: nombre de host en el certificado no coincide con android
  • Error de E / S durante la llamada al sistema, Conexión restablecida por pares
  • Android cargar varios archivos al servidor a través de http post
  • ¿Necesita Android WebView permisos para abrir URL externas?
  • Archivo nunca descargado
  • Mejor Recurso de Aprendizaje para OAuth
  • Conexión de http de Android con OkHttp No funciona
  • ¿Cómo envío un archivo en Android desde un dispositivo móvil al servidor mediante http?
  • Métodos obsoletos, cómo puedo reemplazarlo por nuevos
  • SecurityException: Permiso denegado (¿permiso de Internet perdido?)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.