Qt学习需要http传值,研究了好几天终于可以了这里只是一个最简单的通信,我的Qt是5.7.1
在Pro内添加
QT += network
widget.h中的源码
#ifndef WIDGET_H
#define WIDGET_H
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
private:
Ui::Widget *ui;
QNetworkAccessManager *manager;
QNetworkReply *reply;
QUrl url; //存储网络地址
QFile *file;//文件指针
public slots:
void replyFinished(QNetworkReply *);
};
#endif // WIDGET_H
widget.cpp中的源码如下
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
manager = new QNetworkAccessManager(this);//新建QNetworkAccessManager对象
connect(manager,SIGNAL(finished(QNetworkReply*)),
this,SLOT(replyFinished(QNetworkReply*)));//关联信号和槽
url = "http://123.160.246.110:8088/SMJ/ceshi";
reply = manager->get(QNetworkRequest(url));
//下面关联信号和槽
connect(reply,SIGNAL(finished())
,this,SLOT(httpFinished()));//进行链接请求
manager->get(QNetworkRequest(QUrl(url)));
}
void Widget::replyFinished(QNetworkReply *reply) //当回复结束后
{
QTextCodec *codec = QTextCodec::codecForName("utf8");
//使用utf8编码,这样才可以显示中文
QString all = codec->toUnicode(reply->readAll());
qDebug()<<"massr..."<
ui->textBrowser->setText(all);
}
这里面的url为你要请求的代码的地址,
manager->get(QNetworkRequest(QUrl(url)));为显示数据