QT POST/GET 發送/擷取網頁資料

來源:互聯網
上載者:User

標籤:resource   agent   framework   ted   tail   encode   error   www   dal   

#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是HTTP伺服器的相應碼,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);}

 

http://blog.csdn.net/liukang325/article/details/46915359

QT POST/GET 發送/擷取網頁資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.