QT POST/GET 发送/获取网页数据

#include <QNetworkReply>
#include <QNetworkRequest>

QNetworkAccessManager *m_accessManager;
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    m_accessManager = new QNetworkAccessManager(this);
    QObject::connect(m_accessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot(QNetworkReply*)));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::finishedSlot(QNetworkReply *reply)
{
     if (reply->error() == QNetworkReply::NoError)
     {
         QByteArray bytes = reply->readAll();
         qDebug()<<bytes;
         QString string = QString::fromUtf8(bytes);

         ui->textBrowser->setText(string.toUtf8());
     }
     else
     {
         qDebug()<<"handle errors here";
         QVariant statusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
         //statusCodeV是HTTPserver的对应码,reply->error()是Qt定义的错误码,能够參考QT的文档
         qDebug( "found error ....code: %d %d\n", statusCodeV.toInt(), (int)reply->error());
         qDebug(qPrintable(reply->errorString()));
     }
     reply->deleteLater();
}

void Widget::on_pushButton_clicked()
{
//POST
    QNetworkRequest *request = new QNetworkRequest();

    request->setUrl(QUrl("http://localhost:8888/login"));
//    request->setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
//    request->setRawHeader("Accept","text/html, application/xhtml+xml, */*");
//    request->setRawHeader("Referer","http://localhost:8888/login");
//    request->setRawHeader("Accept-Language","zh-CN");
//    request->setRawHeader("X-Requested-With","XMLHttpRequest");
//    request->setRawHeader("User-Agent","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
//    request->setRawHeader("Content-Type","application/x-www-form-urlencoded");
//    request->setRawHeader("Accept-Encoding","gzip,deflate");
//    request->setRawHeader("Host","localhost:8888");
//    request->setRawHeader("Content-Length","18");
//    request->setRawHeader("Connection","Keep-Alive");
//    request->setRawHeader("Cache-Control","no-cache");

    QByteArray postData;
    postData.append("myname=lk&mypwd=33");

    QNetworkReply* reply = m_accessManager->post(*request,postData);
}

void Widget::on_pushButton_get_clicked()
{
//GET

//    QUrl url("https://kyfw.12306.cn/otn/resources/js/framework/station_name.js");
//    QUrl url("http://localhost:8888/login");
//    QUrl url("http://dict.baidu.com/s?wd=name");

    QNetworkRequest *request = new QNetworkRequest();
    request->setUrl(QUrl("http://dict.baidu.com/s?wd=name"));

    m_accessManager->get(*request);
}

转载于:https://www.cnblogs.com/brucemengbm/p/7072399.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值