1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
...
QString Url_serial = "https://www.example/api/";
QUrl serviceUrl(Url_serial);
QNetworkRequest request_registered(serviceUrl);

// 设置SSL认证方式
QSslConfiguration sslconfig;
sslconfig.setPeerVerifyMode(QSslSocket::VerifyNone);
sslconfig.setProtocol(QSsl::TlsV1_2);
//sslconfig.setPeerVerifyDepth(1);

//设置本地证书
QFile keyFile("client.p12");
bool openOK = keyFile.open(QIODevice::ReadWrite);

QSslKey key;
QSslCertificate certs;
QList<QSslCertificate> caCerts;
QByteArray passPhrase = QString("12345678").toLatin1();
openOK = QSslCertificate::importPkcs12(&keyFile, &key, &certs, &caCerts, passPhrase);
keyFile.close();

request_registered.setSslConfiguration(sslconfig);
request_registered.setRawHeader("Accept","*/*");
request_registered.setRawHeader("Connection","keep-alive");

//设置 token 登陆凭证;
request_registered.setRawHeader(QByteArray("Authorization"),QByteArray(getQJsonDocumentFromQJsonValue(token_val)));
request_registered.setHeader(QNetworkRequest::UserAgentHeader,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36");
request_registered.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

//组装数据
QUrlQuery postData1;
QByteArray serial_check1((char*)Serial_num, 16);
serial_check = serial_check1.toHex();
postData1.addQueryItem("seq",serial_check);

qDebug() << tr("提交的用户token:") + getQJsonDocumentFromQJsonValue(token_val);

//发起网络请求
QNetworkReply* check = m_accessManager_Registered->post(request_registered,postData1.toString(QUrl::FullyEncoded).toUtf8());
....

转自:https://codess.cc/archives/219.html