参考Gitee某工程
一.代码
//百度翻译void CBaiduTranslater::translate(const QString &src, const QString from, const QString to){if (m_networkAccessManager == nullptr) return;QString MY_APID = "2020001079094"; //开发账号如:063000000001QString MY_APID_KEY = "VfmtTr4zH7mbyd_tpKB9"; //开发密匙如:12345678QString baseUrl = "http://api./api/trans/vip/translate?";//生成md5加密文件char salt[60];sprintf(salt,"%d",rand()); //获取随机数 41/18467QString sign=QString("%1%2%3%4").arg(MY_APID).arg(src).arg(salt).arg(MY_APID_KEY);//2020001079094apple41VfmtTr4zH7mbyd_tpKB9QByteArray str = QCryptographicHash::hash(sign.toUtf8(),QCryptographicHash::Md5);QString MD5=str.toHex();//2462992b87d8f8ca6fc7bb0b87cbdfbf//方式一 字符串拼接//http://api./api/trans/vip/translate?//q=apple&from=auto&to=auto&appid=2020001079094&salt=41&sign=4da73b6a4351eda6e21ef14643f4e228QString 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);//方式二 QUrlQuery// QUrl url(baseUrl);// QUrlQuery query;// query.addQueryItem("q", src);// query.addQueryItem("from", from);// query.addQueryItem("to", to);// query.addQueryItem("appid", MY_APID);//client_id无效 appid有效// query.addQueryItem("salt", salt);// query.addQueryItem("sign", MD5);// url.setQuery(query);QNetworkRequest request(url);//create http request headerQNetworkReply *reply = m_networkAccessManager->get(request);//send GET request to get result/* return data */connect(reply, &QNetworkReply::readyRead, [=]{QByteArray data = reply->readAll();CBaiduTranslateResult result = decodeJsonData(data);//类似结构体,存储返回值emit finished(result);reply->close();});/* finish request */connect(reply, &QNetworkReply::finished, [=]{reply->deleteLater();});/* error */auto pError = static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error);connect(reply, pError, [=](QNetworkReply::NetworkError){reply->deleteLater();});}
二.代码下载
Qt调用百度翻译api(QtCreator工程)