qt使用Http请求

正常的使用post、get

get把参数带到地址
post把参数放到json包

有一些不常用的webservice

例如这里的qq在线查询的服务

传一些值

例如在postman这样调用
在这里插入图片描述
那么在qt中如何调用
1.在qt中加入qtsoap这个子项目

    QtSoapMessage message;
    // 设置方法
    message.setMethod("qqCheckOnline", "http://WebXml.com.cn/");
    // 设置动作
    m_pHttp->setAction("http://WebXml.com.cn/qqCheckOnline");
    // 设置主机
    m_pHttp->setHost("www.webxml.com.cn");
    // 添加方法参数
    QString strQQ = "1161913065";
    message.addMethodArgument("qqCode", "", strQQ);
    QString strXML = message.toXmlString();
    qDebug() << strXML;
    qDebug() << "------------------------------------------------";

    // 提交请求
    m_pHttp->submitRequest(message, "/webservices/qqOnlineWebService.asmx");

2.参考51cto这位大佬

    QNetworkAccessManager *manager = new QNetworkAccessManager();
    QString strUserInfo = QString("qqCode=1806903829");
    QByteArray content = strUserInfo.toUtf8();
    int contentLength = content.length();
    QNetworkRequest netReq;
   netReq.setUrl(
   QUrl("http://ws.webxml.com.cn/webservices/qqOnlineWebService.asmx/qqCheckOnline")
   );
    netReq.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    netReq.setHeader(QNetworkRequest::ContentLengthHeader, contentLength);

    // 发送参数
    QNetworkReply *reply =manager->post(netReq, content);
    int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
    qDebug() << "statusCode:" << statusCode;
    QEventLoop eventLoop;
    QAbstractSocket::connect(manager,SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
    eventLoop.exec();
    QString bytes =reply->readAll();
    qDebug()<< bytes;
    reply->deleteLater();
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值