![]() |
|
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
Hola buenas,
Tengo una aplicación en la cuál hago una petición http, y otra https, pero en terminales con android 3.0 o más no me funciona, encontré esta página http://stackoverflow.com/questions/1...working-in-2-3 en la cuál ofrece ayuda para hacerlo, pero no consigo que me funcione, el código que estoy utilizando es el siguiente: package com.example.consultapanama; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.security.KeyStore; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpVersion; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity ; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.PlainSocketFactory; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.conn.tsccm.ThreadSafeClientCo nnManager; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpParams; import org.apache.http.params.HttpProtocolParams; import org.apache.http.protocol.HTTP; import android.os.AsyncTask; import android.util.Log; public class ConsultaTarjeta extends AsyncTask<Void, String, Boolean> { public static String html = ""; @Override protected Boolean doInBackground(Void... arg0) { boolean result = false; try{ HttpPost httpost = new HttpPost("https://www.tarjeta.com.pa/consultatpv/ConsultaTPVAction.do"); List<NameValuePair> nvps = new ArrayList <NameValuePair>(); nvps.add(new BasicNameValuePair("mtd", "doBuscaPlaca")); nvps.add(new BasicNameValuePair("wte_nro_placa", ActividadTarjeta.numeroPlaca)); httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); HttpClient client = new DefaultHttpClient(); try { KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); trustStore.load(null, null); SSLSocketFactory sf = new MySSLSocketFactory(trustStore); sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_ HOSTNAME_VERIFIER); HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, HTTP.UTF_8); SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); registry.register(new Scheme("https", sf, 443)); ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry); client = new DefaultHttpClient(ccm, params); } catch (Exception e) { client = new DefaultHttpClient(); } HttpResponse response = client.execute(httpost); HttpEntity entity = response.getEntity(); BufferedReader br=new BufferedReader(new InputStreamReader(entity.getContent(),"UTF-8")); StringBuilder text = new StringBuilder(); try{ String line; while ((line = br.readLine()) != null) { text.append(line); text.append("\n"); } } catch (IOException e) { Log.e("Error","Error al copiar"); e.printStackTrace(); } html=text.toString(); Log.e("Respuesta",html); // html= readFromBuffer(); } catch(Exception e){ e.printStackTrace(); html="error de lectura"; Log.e("respuesta",html); } publishProgress("progress"); return result; } protected void onProgressUpdate(String... progress) { StringBuilder str = new StringBuilder(); for (int i = 1; i < progress.length; i++) { str.append(progress[i] + " "); } } } No sé por qué, parece ser que nunca llega a asignar el texto del html, puesto que hago el log y no hace nada, he probado depurando pero no consigo ver que pasa... se que después del while sale, pero no salta la excepción... Si alguien puede ayudarme lo agradezco mucho Saludos. ![]() ![]() ![]()
|
|
|
|
#2
|
||||
|
||||
|
Re: Peticiones httpos android 3.0 o mas
|
|
#3
|
||||
|
||||
|
Re: Peticiones httpos android 3.0 o mas
int SDK_INT = android.os.Build.VERSION.SDK_INT;
if (SDK_INT>8){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().buil d(); StrictMode.setThreadPolicy(policy); } O ésto |
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 23:05:36 (GMT +1)
HTCMania: líderes desde el 2007






