参考Gitee某工程
一.代码
void CBaiduTranslater::translate(const QString &src, const QString from, const QString to)
{
if (m_networkAccessManager == nullptr) return;
QString MY_APID = "20220210001079094";
QString MY_APID_KEY = "VfmtTr4zH7mbyd_tpKB9";
QString baseUrl = "http://api.fanyi.baidu.com/api/trans/vip/translate?";
char salt[60];
sprintf(salt,"%d",rand());
QString sign=QString("%1%2%3%4").arg(MY_APID).arg(src).arg(salt).arg(MY_APID_KEY);
QByteArray str = QCryptographicHash::hash(sign.toUtf8(),QCryptographicHash::Md5);
QString MD5=str.toHex();
QString sUrl = baseUrl + QString("q=%1&from=%2&to=%3&appid=%4""&salt=%5&sign=%6")
.arg(src).arg(from).arg(to).arg(MY_APID).arg(salt).arg(MD5);
QUrl url(sUrl);
QNetworkRequest request(url);
QNetworkReply *reply = m_networkAccessManager->get(request);
connect(reply, &QNetworkReply::readyRead, [=]{
QByteArray data = reply->readAll();
CBaiduTranslateResult result = decodeJsonData(data);
emit finished(result);
reply->close();
});
connect(reply, &QNetworkReply::finished, [=]{
reply->deleteLater();
});
auto pError = static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error);
connect(reply, pError, [=](QNetworkReply::NetworkError){
reply->deleteLater();
});
}
二.代码下载
Qt调用百度翻译api(QtCreator工程)