QNetworkReply 개체의 내용에 액세스하는 데 문제가 있습니다. 콘텐츠가 비어 있거나 0 인 것으로 보입니다. 워드 프로세서 (C++에서 자바로 변환)에 따르면 올바르게 설정 한 것 같지만 아무 소용이 없습니다. 또한 "알 수없는 오류"가보고되고 있습니다.Qt Jambi : QNetworkReply의 내용에 액세스
모든 아이디어를 많이 감사합니다. 코드 :. 나는 그들이 들어와 QWebPage
이미 모든 QNetworkReply
개체를 쿼리 것을 상상
public class Test extends QObject {
private QWebPage page;
public Test() {
page = new QWebPage();
QNetworkAccessManager nac = new QNetworkAccessManager();
nac.finished.connect(this, "requestFinished(QNetworkReply)");
page.setNetworkAccessManager(nac);
page.loadProgress.connect(this, "loadProgress(int)");
page.loadFinished.connect(this, "loadFinished()");
}
public void requestFinished(QNetworkReply reply) {
reply.reset();
reply.open(OpenModeFlag.ReadOnly);
reply.readyRead.connect(this, "ready()"); // never gets called
System.out.println("bytes: " + reply.url().toString()); // writes out asset uri no problem
System.out.println("bytes: " + reply.bytesToWrite()); // 0
System.out.println("At end: " + reply.atEnd()); // true
System.out.println("Error: " + reply.errorString()); // "Unknown error"
}
public void loadProgress(int progress) {
System.out.println("Loaded " + progress + "%");
}
public void loadFinished() {
System.out.println("Done");
}
public void ready() {
System.out.println("Ready");
}
public void open(String url) {
page.mainFrame().load(new QUrl(url));
}
public static void main(String[] args) {
QApplication.initialize(new String[] { });
Test t = new Test();
t.open("http://news.bbc.co.uk");
QApplication.exec();
}
}
QNetworkAccessManager만으로도 동일한 작업을 수행 할 수있는 이유는 무엇입니까? – Anton
@Anton : 저는 2 가지 이유 때문에 웹 페이지를 사용하고 있습니다. 1) 페이지에 필요한 모든 애셋을 제공합니다 (CSS, js, 이미지 - CSS 포함). 2) 렌더링 된 html이 필요합니다. –
@ 리차드 : 왜 QWebView가 필요하지 않습니까? – Anton