QT POST/GET 发送/获取网页数据
2016-12-02 06:51
417 查看
#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 发送/获取网页数据
- QT POST/GET 发送/获取网页数据
- QT POST/GET 发送/获取网页数据
- QT POST/GET 发送/获取网页数据
- C++使用POST方法向网页提交数据-----C++发送HTTP数据获取Google天气预报
- Java发送http POST,GET,并获取返回数据
- php使用fsockopen函数发送post,get请求获取网页内容的方法
- Qt/C++将web网页POST发送的数据转换成正常字符
- php使用fsockopen函数发送post,get请求获取网页内容的方法
- 模拟表单发送POST,GET请求获取数据
- android 客户端与服务端的通信 发送get和post请求并获取数据
- C#模拟Post和Get方式发送数据 保持COOKIE
- C#模拟Post和Get方式发送数据的技巧
- C#模拟Post和Get方式发送数据
- 用idhttp post 方法发送数据到服务器上。实现数据和网页的交互。
- 在ASP.NET中获取Get方式和Post方式提交的数据
- ASP.NET以Post方式向网页发送数据
- 转载:通过POST和GET来获取数据
- 以Post方式向网页发送数据
- 以Post方式向网页发送数据