im principiante con QtWebKit construyo un marco web simple que carga la página (lado del servidor) y cuando desde esta página envío datos me gusta capturar la cadena de respuestas del servidor en el lado de C++ cómo Puedo hacer eso ?cómo obtener respuesta en QtWebKit
Respuesta
Puede usar la clase QNetworkReply
para ello. QWebPage
instancias tienen el método networkAccessManager()
que devuelve una instancia QNetworkAccessManager
capaz de enviar solicitudes y recibir respuestas.
Debe buscar su señal finished
.
void QNetworkAccessManager::finished (QNetworkReply * reply)
Esta señal se emite cada vez que se terminó la espera de una respuesta de la red . El parámetro de respuesta contendrá un puntero a la respuesta que acaba de finalizar.
QNetworkReply
a su vez es una heredera de QIODevice
por lo tanto, usted es capaz de llamar a su método readAll()
el fin de recibir los datos de respuesta.
También puede encontrar this pregunta útil.
esto simplemente no funciona ... – user63898
Quiero hacer exactamente lo mismo y este método no parece funcionar: cuando se emite la señal de finalización, WebKit ya ha leído todos los datos del objeto de respuesta por lo que simplemente no está allí. – Ghostrider
He jugado con Qt (que soy nuevo) y encontré una forma de capturar todos los recursos descargados por WebKit. Así es como:
1) crear una subclase de QNetworkAccessManager
2) En la clase derivada, de anulación de funciones virtuales createRequest
3) la implementación de la clase base llamada para obtener el objeto respuesta. Después de eso se puede ver en la URL (u otros parámetros) y determinar si es necesario para capturar ese recurso en particular o no
4) si - conectar la señal readyRead en cierta ranura que capturará los datos
5) en que la función de llamada ranura peek para leer datos de modo que WebKit obtendrá los datos también
6) Después de crear objeto QWebPage, llaman setNetworkAccessManager y pasar una instancia recién creada de la subclase de la etapa 1)
Eso es todo, ¡disfruta!
Lo bueno de este enfoque es que parece que se encarga de Content-Encoding: gzip y desinflar en ese punto para que no tenga que descomprimir datos usted mismo – Ghostrider
- 1. Cómo obtener un mensaje de error detallado cuando QTWebKit no puede cargar una página?
- 2. Cómo instalar un complemento para QtWebKit
- 3. mostrando fuentes en árabe en QtWebKit
- 4. QtWebkit: ¿Cómo verificar el código de estado HTTP?
- 5. Cómo obtener una respuesta de redireccionamiento
- 6. ¿Cómo obtener la respuesta de XMLHttpRequest?
- 7. Cómo obtener una respuesta usando cURL en PHP
- 8. ¿Cómo obtener el mensaje de respuesta REST en ExtJs 4?
- 9. ¿Cómo obtener la URL de respuesta en XMLHttpRequest?
- 10. Enchufes en C#: ¿Cómo obtener la secuencia de respuesta?
- 11. Controlador de resorte Obtener solicitud/respuesta
- 12. Obtener el valor json de la respuesta
- 13. Obtener archivo de respuesta use ExtJS
- 14. ¿Cómo obtener el código de estado de respuesta de jQuery.ajax?
- 15. Cómo obtener y analizar la respuesta JSON del traductor Google
- 16. WebException cómo obtener una respuesta completa con un cuerpo?
- 17. ¿Cómo obtener respuesta como documento XML con Apache Httpclient api?
- 18. ¿Cómo obtener la respuesta de un controlador desde otro controlador?
- 19. Obtener el código de respuesta del encabezado
- 20. Obtener la respuesta de un HttpWebRequest asíncrono
- 21. Cómo enviar datos HTTP y obtener respuesta con Synapse (Delphi)
- 22. Cómo obtener una buena respuesta al guardar un modelo
- 23. ¿Cómo obtener respuesta html desde una cadena url? (Esquema/Raqueta)
- 24. ¿Por qué es QtWebKit tanto detrás de Google Chrome (cromo)
- 25. Android obtener respuesta después de 403 en HttpClient
- 26. Symfony2 obtener el entorno actual en el oyente de respuesta
- 27. Enviando un encabezado personalizado junto con la solicitud qtwebkit
- 28. QtWebkit como una GUI de aplicación de escritorio
- 29. Qt4: ¿Cómo llamar funciones de JavaScript en una página de C++ a través de QtWebkit?
- 30. ¿Puedo usar tcpdump para obtener solicitudes HTTP, encabezado de respuesta y cuerpo de respuesta?
Comience por usar más signos de puntuación y menos espacios en blanco. Mejoraría la legibilidad y la comprensión. –