QT 네트워크 프로 그래 밍:QNetworkAccessManager 를 사용 하여 post 요청 업로드

1305 단어 QTposthttp
기능 소개
프로젝트 개발 에 있어 서 장치 단말 기 는 서버 에 로그 나 보고 상태 정 보 를 자주 업로드 해 야 합 니 다.다음은 QNetworkAccessManager 를 사용 하여 업로드 할 데 이 터 를 전송 하여 업로드 할 수 있 는 함 수 를 봉인 합 니 다.제출 한 데이터 형식 은 JSON 형식 을 사용 하고 요청 방식 은 post 를 사용 합 니 다.코드 에 관련 상태 슬롯 함수 가 없고 실제 운용 에서 업로드 한 데이터 의 양 이 비교적 적 으 며 데 이 터 는 중단 적 으로 중복 업로드 되 어 성공 상 태 를 판단 하지 못 합 니 다.
핵심 코드
#define TOKEN "abc-def-ghi-jkl-mno"
QString DeviceID="123456789";
QNetworkAccessManager SendErrorInfo_manager;
void SERVER_SendErrorInfo(QString text)
{
    //    
    QString requestUrl;
    QNetworkRequest request;
    //    
    requestUrl="http://192.168.1.123:6666/carmonitorsys/errlog/upload.action?";
    requestUrl+=QString("token=%1&").arg(TOKEN);   //   
    requestUrl+=QString("devId=%1").arg(DeviceID); //    

    //      
    QUrl url;
    url.setUrl(requestUrl);
    request.setUrl(url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
    //        
    QJsonObject post_data;
    QJsonDocument document;
    QByteArray post_param;

    post_data.insert("msg",text); //    
    document.setObject(post_data);
    post_param = document.toJson(QJsonDocument::Compact);
   //    
    SendErrorInfo_manager.post(request,post_param);
}

좋은 웹페이지 즐겨찾기