Quantcast
Channel: Qt DevNet forums: Qt Quick 1283365070**
Viewing all articles
Browse latest Browse all 4972

Connect To Remote Webservice using Soap

$
0
0
I am new to Qt, and in my application i need to connect to a remote service hosted in secure environment. I need to add certificates to the Network request inorder to process the request. void QtSoapHttpTransport::submitRequest(QtSoapMessage &request, const QString &path) {     QNetworkRequest networkReq;       QFile    sslCertificateFile("Certificate1.cer");     QFile    sslCertificateFileserver("Certificate2.cer");     QSslConfiguration sslConfiguration;     QSslCertificate  sslCertificate;     QSslCertificate  sslCertificateserver;     if ( (sslCertificateFile.open(QIODevice::ReadOnly)) &&          sslCertificateFileserver.open(QIODevice::ReadOnly))     {          // Read certificates from file          QByteArray aray = sslCertificateFile.readAll();          qDebug() << aray;            // Read server ceriticate file          QByteArray arayserver = sslCertificateFileserver.readAll();          qDebug() << arayserver;          // Load Client          QList<QSslCertificate> sslCertificateList = QSslCertificate::fromData(aray,QSsl::Pem);          qDebug("Found certificates: %d", sslCertificateList.size());          sslCertificate = sslCertificateList.takeAt(0);          QByteArray testarray =  sslCertificate.digest(QCryptographicHash::Sha1);          qDebug() << testarray;            // Load Server          QList<QSslCertificate> sslCertificateListserver = QSslCertificate::fromData(arayserver,QSsl::Der);          sslCertificateserver = sslCertificateListserver.takeAt(0);            QList<QSslCertificate> ceritifcates;          ceritifcates.append(sslCertificate);          ceritifcates.append(sslCertificateserver);            QSslKey key(&sslCertificateFile, QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey);          qDebug() << "key isNull ? " << key.isNull();          sslConfiguration.setPrivateKey(key);            //sslConfiguration.setLocalCertificate(sslCertificate);          sslConfiguration.setLocalCertificateChain(ceritifcates);          sslConfiguration.setProtocol(QSsl::AnyProtocol);            networkReq.setSslConfiguration(sslConfiguration);       }       networkReq.setHeader(QNetworkRequest::ContentTypeHeader, QLatin1String("text/xml;charset=utf-8"));     QByteArray array;     array.append(soapAction);     networkReq.setRawHeader("SOAPAction",array);       QUrl url2 = path ;     networkReq.setUrl(url2);     soapResponse.clear();     networkRep = networkMgr.post(networkReq, request.toXmlString().toUtf8().constData()); } But i am not able to get the Certificate list using “QSslCertificate::fromData(arayserver,QSsl::Der);” . The list is empty. please let me know how to rectify the issue or please suggest any other way to access SSL Certified Service using Qt. Note: I have installed Open Ssl and i am configuring it in the project file like below  CONFIG += openssl LIBS += -L"C:/OpenSSL-Win32/lib" -llibeay32

Viewing all articles
Browse latest Browse all 4972

Trending Articles