QT4.7 웹뷰를 통해 페이지 호출하기

2021. 8. 4. 19:02개발/QT

너무 옛날거라서 그런지 인터넷 정보들이 거의다 말소되었다.

이 버전을 쓰던게 2010년대이니 그럴수밖에...

 

게다가 정보라고 달린 링크들은 노키아 홈페이지인데, 노키아가 망해서 없어졌다

기록보관소 형식으로 남겨보고자 한다.

 

 

우선 QWebView를 통해 기본 틀을 만들어야한다.

 

//main.cpp

#include <QWebView>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebView *webView = new QWebView();
    webView->move(0,0);
    webView->resize(1920,1080);
    webView->show();
    
    char postStr[32] = {0,};
    
    //sprintf(postStr, "(post파라미터)=(값)", .....);
    //예
    //sprintf(postStr, "postValue=%d", 50);
    
    QByteArray postData(postStr);
    QNetworkRequest qRequest;
    
    ///이 부분은 빼먹으면 https호출은 불가능하다.
    QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();
    QList<QSslCertificate> ca_list = sslConfig.caCertificates();
    QList<QSslCertificate> ca_new = QSslCetificate::fromData("CaCertificates");
    ca_list += ca_new;
    sslConfig.setCaCertificates(ca_list);
    sslConfig.setProtocol(QSsl::AnyProtocol);
    QSslConfiguration::setDefaultConfiguration(sslConfig);
    qRequest.setSslConfiguration(sslConfig);
    /// 여기까지가 ssl쓸때 필요한부분
    
    qRequest.setUrl(QUrl("호출할 주소"));
    qRequest.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded;charset=UTF-8");
    
    webView->postUrl(qRequest, postData);
    
    return a.exec();
}

 

 

웹뷰 부분을 따로 클래스로 만들던지해서 리펙토링하면 쓸만해진다.

 

https호출이 진짜 너무 검색이 안되더라...