http网络访问

QNetworkAccessManager,QNetworkRequest,QNetworkReply 这三个类是Qt在网络访问比较常用的类

#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>

  // 发送给登录服务器(发http--> qt网络访问库)
  QNetworkAccessManager m_access_msg;

   QNetworkRequest req(QUrl("http://10.0.0.1:9988/login/"));
   req.setHeader(QNetworkRequest::ContentLengthHeader,output.size());
   req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");

   m_access_msg.post(req,output.toUtf8());

  // 异步处理服务器的回复(connect 服务器回复和回复的处理函数)
   connect(m_reply,&QNetworkReply::finished,this,&Widget::proc_login_reply);
void Widget::proc_login_reply()
{
    // 判断登录结果
    QJsonDocument json_doc = QJsonDocument::fromJson(m_reply->readAll());

    QJsonObject json = json_doc.object();

    if("OK" == json["login_result"].toString()){
        qDebug()<<"login success";
    }else{
        QMessageBox::information(this,"登录信息","用户名或密码错误");
    }
}

posted on 2021-07-08 13:31  lodger47  阅读(102)  评论(0)    收藏  举报

导航