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


 
Herramientas
  #1  
Viejo 03/03/13, 01:55:28
Avatar de cristina1991
cristina1991 cristina1991 no está en línea
Usuario novato en la web
Mensajes: 9
 
Fecha de registro: feb 2013
Localización: Panama
Mensajes: 9
Modelo de smartphone: Samsung galaxy ace
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Exclamation Peticiones httpos android 3.0 o mas

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.
Responder Con Cita


  #2  
Viejo 11/03/13, 05:51:31
Avatar de MSL046
MSL046 MSL046 no está en línea
Usuario novato en la web
Mensajes: 6
 
Fecha de registro: ene 2013
Mensajes: 6
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Re: Peticiones httpos android 3.0 o mas

http://elbauldelprogramador.com/open...id-strictmode

Mira ésto.
Responder Con Cita
  #3  
Viejo 11/03/13, 05:54:39
Avatar de MSL046
MSL046 MSL046 no está en línea
Usuario novato en la web
Mensajes: 6
 
Fecha de registro: ene 2013
Mensajes: 6
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 23:05:36 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007