ile nasıl yanıt alacağınız QtWebKit ile yeni başlayan bir web sayfası (sunucu tarafı) yüklendiğinde ve bu sayfadan ne zaman veri gönderdiğimi sorduğumda, sunucudan yanıt dizisini yakalamak istiyorum C++ side bunu yapabilir miyim ?QtWebKit
QtWebKit
cevap
Bunun için QNetworkReply
sınıfını kullanabilirsiniz. QWebPage
örnekleri, istekleri göndermek ve yanıtları almak için QNetworkAccessManager
örneğini döndüren networkAccessManager()
yöntemine sahiptir.
finished
sinyalini aramanız gerekir.
void QNetworkAccessManager::finished (QNetworkReply * reply)
bir bekleyen ağ Cevap tamamlandı olduğunda sinyal yayılır
. yanıt parametresi, bitmiş olan cevaba bir işaretçi içerecektir. sırası geldiğinde
QNetworkReply
nedenle yanıt verilerini almak için onun readAll()
yöntemini çağırmak mümkün QIODevice
bir mirasçısıdır.
this Sorunuzu faydalı bulabilirsin.
Bu sadece bir işe yaramıyor .. – user63898
Aynı şeyi yapmak istiyorum ve bu yöntem işe yaramıyor gibi görünüyor: bitmiş sinyal verilince, WebKit zaten tüm veriyi cevap nesnesinden okuyor. – Ghostrider
Qt (Ben yeniyim) ile tinkered ve WebKit tarafından indirilen tüm kaynakları yakalamak için bir yol buldum.
1), türetilmiş bir sınıf olarak QNetworkAccessManager
2) kendi alt sınıf oluşturun tepki nesneyi almak için sanal fonksiyon createRequest
3) Çağrı temel sınıf uygulaması geçersiz: İşte nasıl. Bundan sonra URL'yi (veya başka parametreler) bakıp yoksa)
4 o belirli kaynak yakalamanız gerekir belirlemek veya olamaz - veri bulacaktır bazı yuvaya readyRead sinyalini bağlamak
bu yuva arama gözetleme fonksiyonunda5) WebKit QWebPage nesnesi oluşturduktan sonra veri
6 da
) alacak şekilde, veri okuma setNetworkAccessManager aramak ve aşama 1)adresinin alt sınıfının bir yeni oluşturulan örneği geçmesine İşte bu - tadını çıkarın!
Bu yaklaşımla ilgili güzel bir şey, İçerik Kodlaması ile ilgileniyor gibi görünüyor: gzip ve bu noktada deflate, böylece verileri kendiniz açmanız gerekmez – Ghostrider
- 1. QtWebkit
- 2. QtWebkit: HTTP durum kodu nasıl kontrol edilir?
- 3. ubuntu 14.04'te QtSvg, QtWebKit, QtWebKitWidgets (tümü Qt5 sürümünde) nasıl yüklenir?
- 4. Q ++ nesnesinde Javascript'e Expose C++ nesnesi 0t
- 5. Capybara Webkit çalışma zamanı uyarısı: Sınıf
- 6. QtWebEngine
- 7. QWebView kullanarak html nasıl görüntülenir. Python?
- 8. CSS3 eşdeğeri genişlik: calc (% 100 - 10 piksel)
- 9. Linux'ta Qt libs (qwebview.h) nasıl eklenir?
- 10. QWebView/Qt WebKit bazı SSL sayfalarını açmayacaktır; yönlendirmelere izin verilmiyor mu?
- 11. Ruby, Qt ve üçüncü parti widget'lar
- 12. Minimalist bir Qt yapısı için önerilen bayraklar
- 13. QML'nin Facebook Javascript SDK'sını kullanarak veri yüklemesinin herhangi bir yolu var mı?
- 14. PyQT4
- 15. qt gui güncelleme öğeleri Golang ile çalışmadı
Daha fazla noktalama işareti ve daha az boşluk kullanarak başlayın. Okunabilirliği ve anlaşılırlığı geliştirir. –