0

Me sucede algo increíble y ya prove de todo pero no he podido dar con el resultado, y lo peor es que desconozco porque sucede esto, donde está el error.

Estoy trabajando con HttpUrlConnection, funciona todo perfecto, lo único que no puedo procesar es la respuesta del PHP. Quiero saber si los procesos en PHP funcionaron o no, entonces devuelvo "si" o "no" de acuerdo al resultado. La respuesta llega a Android pero no hay forma de procesarla. Les explico

if (responseCode == HttpURLConnection.HTTP_OK)
{
    String respuesta = readStream(urlConnection.getInputStream());
    Log.e("Server Response: ", respuesta);

Con estas lineas lo que hago es, primero asegurarme de que la conexión estubo OK, luego obtengo en la variable respuesta lo que me devuelve el PHP. Y aquí está mi problema. readStream tiene que ser si o si String, al menos lo que creo, porque intenté cambiar la variable respuesta a Integer porejemplo o Boolean y me tira error diciendome que se esperaba un string; lo cual no es un problema para mí, Ahora bien, intento procesar el contenido de "respuesta" y no ingresa a ningun if de los siguientes. Aclaro que el valor es "no", lo corroboro parando el proceso de Android antes de la linea del if y me dice que la respuesta es un String y el valor es "no"

if (respuesta == "no")
{
     Log.e("Entre: ", "Entre");
}
if (respuesta.equals("no"))
{

No ingresa a ninguno de esos IF, porque? si Android me dice que respuesta vale "no" y es un String. Les paso como tengo mi PHP

if (!$resultado = $con->query($sql)) {
        $response = "no";
    }else{
        $response = "si";
    }

}else{
    $response = "no";
}
echo $response;

Antes lo tenia con json_encode($response); y tampoco me funcionaba.

NO ENTIENDO PORQUE NO ENTRA A LOS IF DE ANDROID SI respuesta = "no" y es String

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

Mauro Tello
  • 331
  • 2
  • 15
  • Posible duplicado de [¿Cómo comparar correctamente Strings (y objetos) en Java?](https://es.stackoverflow.com/questions/225/c%c3%b3mo-comparar-correctamente-strings-y-objetos-en-java) – SJuan76 Sep 08 '18 at 13:00
  • 1
    Te recomiendo A) Antes de empezar a trabajar con conexiones HTTP y demás, estés realmente familiarizado con Java B) Cuando tengas un problema, lo reduzcas a la parte esencial (la comparación) y quites lo no relacionado (que los datos vengan de una conexión de red), mira [mcve] C) que busques la duda en las preguntas ya respondidas. Todo eso ayudará a reducir los errores "increíbles" (y los no tan increíbles). – SJuan76 Sep 08 '18 at 13:01
  • Disculpen lo extenso del mensaje lo que pasa que cuando lo pongo resumido, me dicen que tengo que explicarlo un poco más sino no pueden saber de donde viene o que estoy haciendo, ahora que lo expongo amplio para que entiendan me piden que lo achique jajajaja. Esta todo bien trataré de hacer algo intermedio – Mauro Tello Sep 08 '18 at 13:04
  • Disculpen pero no entiendo porque me redirigen a una pregunta existente, en donde hablan de "==" y "equals" porque en realidad puse las 2 opciones en mi codigo y en ninguna de las 2 ingresa. O me estoy perdiendo de algo? – Mauro Tello Sep 08 '18 at 13:07
  • 1
    No es cuestión de longitud, es cuestión de ver que partes son relevantes y que partes no son. Haciendo un programita normal que hiciera la comparación te saldría el mismo error y habrías visto que no está relacionado con la comunicación. – SJuan76 Sep 08 '18 at 13:08
  • 1
    `Aclaro que el valor es "no", lo corroboro parando el proceso de Android antes de la linea del if y me dice que la respuesta es un String y el valor es "no"` La imagen que pones muestra "false", no "no". En todo caso, al hacer log, a veces es útil poner el valor entre símbolos, para ver si hay caracteres que no se ven añadidos (por ejemplo, espacios en blanco). Ejemplo: Log.e("Server Response: ", "|" + respuesta + "|"); – SJuan76 Sep 08 '18 at 13:14
  • Hay un problema con el string de la variable response, estoy investigando donde es que le eagrega un caracter especial o algo, porque hice un size de l a variable y me dice 3 – Mauro Tello Sep 08 '18 at 13:34
  • Mira Juan hice lo que me dijo, y encontre que hay un espacio delante de la n. – Mauro Tello Sep 08 '18 at 13:38
  • 1
    GRACIAS !!!! por su ayuda – Mauro Tello Sep 08 '18 at 13:45
  • En el manifest tenes el permiso de internet dado ? – Gastón Saillén Sep 08 '18 at 17:35

0 Answers0