2012-04-27 3 views
1

Qt 생성자로 작성된 프로그램이 있습니다. Google의 C2DM 서버에 https 게시물을 보내야합니다.Qt 작성자 SSL 사용

QSslSocket을 사용하면 SSL이 작동하지 않는다고 표시됩니다.

Qt 문서에는 법률 적 이유로 SSL 지원과 함께 제공되지 않으며 QSslSocket은 단지 래퍼이며 OpenSSL을 직접 설치해야한다는 내용이 나와 있습니다. DLL을 복사하려고했지만 여전히 작동하지 않습니다. 누군가 OpenSSL을 설치하고 Qt Creator와 함께 작동하도록 안내 할 수 있습니까?

+0

어떤 dll을 복사 했습니까? –

답변

0

QNetworkAccessManager을 사용하지 않으시겠습니까? 나는 웹 서비스에 JSON을 게시하려면이 같은 것을 사용 :

void HttpPoster::post(){ 

    if(!manager) 
    manager = new QNetworkAccessManager(this); 

    QSslConfiguration config = QSslConfiguration::defaultConfiguration(); 
    config.setPeerVerifyMode(QSslSocket::VerifyNone); 
    //config.setProtocol(QSsl::TlsV1); 

    QNetworkRequest request ; 
    request.setUrl(QUrl("https://somehost.somedomain")); 
    request.setRawHeader("User-Agent", "MyApp"); 
    request.setRawHeader("Content-type", "text/json"); 

    request.setSslConfiguration(config); 

    if(!reply){ 
    reply = manager->post(request,m_Data); 
    } 

    connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(handleErrors(QNetworkReply::NetworkError))); 
    connect(reply,SIGNAL(sslErrors(QList<QSslError>)),this,SLOT(handleSSLErrors(QList<QSslError>))); 
    connect(reply,SIGNAL(finished()),this,SLOT(replyFinished())); 

} 

생략 몇 가지 방법을있다 (, 등 SSL 오류를 처리, 응답을 처리, 오류를 처리). 문서에서 더 나은 예제를 찾을 수 있습니다.