QtWebKit은 웹 페이지를로드하지 못했을 때 QWebPage::loadFinished (false)
을 호출하지만 실패한 이유에 대한 단서는 제공하지 않습니다.QTWebKit에서 페이지를로드하지 못할 때 자세한 오류 메시지를 얻는 방법?
HTTP 응답 코드 또는 기타 메시지와 같은 자세한 오류 메시지는 어떻게 받습니까?
QtWebKit은 웹 페이지를로드하지 못했을 때 QWebPage::loadFinished (false)
을 호출하지만 실패한 이유에 대한 단서는 제공하지 않습니다.QTWebKit에서 페이지를로드하지 못할 때 자세한 오류 메시지를 얻는 방법?
HTTP 응답 코드 또는 기타 메시지와 같은 자세한 오류 메시지는 어떻게 받습니까?
실패에 대한 자세한 정보를 얻을 수있는 몇 가지 방법이 있습니다에서 그것은집니다 :
페이지에 onResourceRequested
및 onResourceReceived
콜백을 구현 :
page.onResourceRequested = function (resource) {
log('resource requested: ' + resource.url);
}
page.onResourceReceived = function (resource) {
log('resource received: ' + resource.status + ' ' + resource.statusText + ' ' +
resource.contentType + ' ' + resource.url);
}
더 많은 세부를 찾는 경우가 여전히 PhantomJS 내부를 패치해야합니다. WebPage.cpp의 CustomPage 개체를 업데이트하여 QTWebKit의 ErrorExtension을 구현합니다. 여기에 당신이 그 않는 추가 할 수 있습니다 코드 :
protected:
bool supportsExtension(Extension extension) const {
if (extension == QWebPage::ErrorPageExtension)
{
return true;
}
return false;
}
bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0)
{
if (extension != QWebPage::ErrorPageExtension)
return false;
ErrorPageExtensionOption *errorOption = (ErrorPageExtensionOption*) option;
std::cerr << "Error loading " << qPrintable(errorOption->url.toString()) << std::endl;
if(errorOption->domain == QWebPage::QtNetwork)
std::cerr << "Network error (" << errorOption->error << "): ";
else if(errorOption->domain == QWebPage::Http)
std::cerr << "HTTP error (" << errorOption->error << "): ";
else if(errorOption->domain == QWebPage::WebKit)
std::cerr << "WebKit error (" << errorOption->error << "): ";
std::cerr << qPrintable(errorOption->errorString) << std::endl;
return false;
}
이 당신에게 오류 정보의 대부분을 줄 것이다,하지만 당신은 아직 자세한 내용을받지 않고 onLoadFinished(success=false)
이벤트를 얻을 수 있습니다. 내 연구에서, 그 주된 원인은 입니다.로드 요청이 취소되었습니다. QTWebKit은 취소에 대한 실패 알림을 보내지 만 세부 사항은보고하지 않습니다.
는 또한 [어떻게 HTTP 상태 코드를 확인하기]를 참조 [1] [1] : http://stackoverflow.com/questions/4330274/qtwebkit-how-to-check-http-status-code –