es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La respuesta HTTPS muestra valores no esperados.

Buenas tardes,

Me encontré con un problema extraño que nunca había encontrado antes, así que espero que alguien pueda ayudarme.

Estoy enviando una solicitud a un servidor y espero una respuesta específica.

Realizo la llamada usando:

response = httpClient.newCall(request).execute();

Paralelamente, estoy verificando la solicitud a través de HTTP Toolkit.
Allí puedo ver que el servidor responde con un código 200 OK y un cierto flujo de bytes que espero (comienza con:

0a a1 0a 0a 1e 74 79 70 65 2e 67 6f 6f 67 6c 65 61 70 69 73 2e

En el código que estoy usando:

System.out.println("ResponseBody: " + (response.body().byteString().hex()));

para validar que muestra el mismo resultado que en HTTP Toolkit, pero por alguna razón estoy obteniendo una respuesta totalmente diferente. Comienza con:

1f8b0800000000000403a594cb4a033114866d4bbd

¿Por qué hay una diferencia? También intenté dejar de interceptar la solicitud a través de HTTP Toolkit para asegurarme de que no esté siendo manipulada por la herramienta, pero eso también resultó en un valor inesperado.
También intenté depurarlo, pero tan pronto como puedo ver el response.body en el IDE, ya tiene el resultado inesperado en él.

Espero que alguien haya enfrentado el mismo problema y conozca una solución.

Saludos

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Desajuste en el cuerpo de respuesta

    El problema que estás enfrentando está relacionado con la diferencia en el cuerpo de respuesta que estás obteniendo en tu código y el cuerpo de respuesta que estás viendo en HTTP Toolkit.

    El cuerpo de respuesta que estás viendo en HTTP Toolkit parece estar correcto, ya que coincide con el flujo de bytes que esperas. Sin embargo, en tu código estás obteniendo un cuerpo de respuesta diferente que no es lo que esperabas.

    Ya has intentado eliminar la posibilidad de manipulación por parte de HTTP Toolkit deteniendo la intercepción, pero el problema sigue persistiendo.

    Una posible razón para este problema podría ser la codificación del cuerpo de respuesta. Es posible que el cuerpo de respuesta que estás viendo en HTTP Toolkit esté en un formato de codificación diferente al que tu código espera. Por lo tanto, cuando intentas imprimir la cadena de bytes en tu código, te devuelve un resultado diferente.

    Para resolver esto, puedes intentar verificar el formato de codificación del cuerpo de respuesta en HTTP Toolkit y luego utilizar el mismo formato de codificación en tu código. También puedes intentar decodificar el cuerpo de respuesta en tu código utilizando el formato de codificación correcto para ver si coincide con el flujo de bytes que esperabas.

    Espero que esto te ayude a resolver el problema.

Comments are closed.