shixingya |
2018-04-29 19:26 |
void DataServer::send(CloudRequest &request, CloudResponse &response) { QNetworkRequest oNetRequest; oNetRequest.setUrl(QUrl(request.getRequestUrl())); if(request.getContentType() == ctJson) oNetRequest.setRawHeader("Content-Type", "application/json"); else if(request.getContentType() == ctXml) oNetRequest.setRawHeader("Content-Type", "application/xml"); else oNetRequest.setRawHeader("Content-Type", "application/octet-stream"); if(!m_token.isEmpty()) { oNetRequest.setRawHeader("Authorization", m_token.toLocal8Bit()); } oNetRequest.setRawHeader("CLIENTVERSION", ("V1")); QNetworkAccessManager oNetAccessManager; QNetworkReply* oNetReply = NULL; switch (request.getRequestMethod()) { case rmPut: oNetReply = oNetAccessManager.put(oNetRequest, *request.getRequestData()); break; case rmPost: oNetReply = oNetAccessManager.post(oNetRequest, *request.getRequestData()); break; case rmGet: oNetReply = oNetAccessManager.get(oNetRequest); break; case rmDelete: oNetReply = oNetAccessManager.deleteResource(oNetRequest); break; default: break; } if(oNetReply ==nullptr) { qDebug()<<"send error"<<*request.getRequestData(); QMessageBox::about(nullptr, "错误",QString("发送请求异常").append(*request.getRequestData())); return; } QEventLoop loop; connect(oNetReply, SIGNAL(finished()), &loop, SLOT(quit())); int tmpResult =loop.exec(); //系统运行时间久 在此报错 QThread::start: Failed to create thread (设备不识别此命令。 if(tmpResult !=0) { qDebug()<<"创建loop失败 失败码"<<tmpResult; qDebug()<<"send error"<<*request.getRequestData();; } //记录httpCode int httpsCode = oNetReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); response.setHttpCode(httpsCode); if(oNetReply->error()) { response.setIsError(true); response.setErrorMsg(oNetReply->errorString()); response.setContent(oNetReply->readAll()); } else { response.setContent(oNetReply->readAll()); } }
|
|