2013-10-20 2 views
1

Qt 4.8을 사용하여 HTTP 게시물 요청을하고 있습니다.QNetworkReply는 HTML에서 숨겨진 JavaScript를 가져 오지 않습니다. Comment

void post() { 
    QByteArray parameters; 
    QUrl url("http://www.somerandomurl.com"); 

    QNetworkRequest request(url); 
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); 

    QNetworkReply* reply = network_access_manager->post(request, parameters); 
} 

void requestfinished(QNetworkReply* reply) { 
    QString response(QString::fromUtf8(reply->readAll())); 
    std::cout << response.toStdString() << std::endl; 
} 

내가 가져야하는 HTML 페이지에는 HTML 주석에 Javascript가 숨겨져 있습니다. 파이어 폭스/크롬으로 보거나 파이썬 3으로 HTTP 요청을하면 Javascript Code로 원하는 방식으로 주석을 얻는다. 어떤은 다음과 같습니다 Qt의 예제와

<script language="JavaScript"> 
<!-- 
Javascript Code 
Javascript Code 
Javascript Code 
//--> 
</script> 

그러나 나는 단지 자바 스크립트없이 코멘트를 얻을.

<script language="JavaScript"> 
<!-- 
//--> 
</script> 

Qt는 4.8뿐만 아니라 자바 스크립트를 얻을 수있는 방법이 있나요?

답변

2

이것이 나에게 JavaScript가 필터링되는 Qt로 인한 것 같지는 않지만 사용자 에이전트를 기반으로하는 서버의 무언가에 의해 발생할 가능성이 높습니다. 요청을 보내기 전에 request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36");에 전화를 걸어보십시오.

귀하의 요청이 조금 이상해 보입니다. Content-type "application/x-www-form-urlencoded"로 게시 중이지만 어떤 데이터도 제공하지 않습니다. URL을 가져 오는 것이 가장 좋은 이유는 무엇입니까?

또한 URL을 공유 할 수 있으면 디버그하는 것이 더 쉽습니다. 물론 가능하지 않다면 괜찮습니다.