需要在头文件中添加网络相关QtNetwork
**GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据**
1.使用get方式
创建网络管理器:QNetworkAccessManager *manager = new QNetworkAccessManager(this);
创建请求:QNetworkRequest *my_request = new QNetworkRequest();
使用槽连接:connect(manager, SIGNAL(finished(QNetworkReply*)),this,SLOT(parse__data(QNetworkReply*)));
声明请求返回:QNetworkReply *reply;
当发送完成之后会发送结束信号,此时可指定相应的槽函数,利用QNetworkReply*获取相关情况
槽函数:
void TestQNetwork::parse_data(QNetworkReply* reply)
{
if(reply ->error()==QNetworkReply::NoError)//发送无误
{
QTextCodec *codec = QTextCodec::codecForName(“utf8”);
QString return_code = codec->toUnicode(reply->readAll());//获取返回数据
reply->deleteLater();//删除否则下次无法发送
}
}
建立连接后再在它地方可指定请求链接发送请求,发送完毕后会自动调用相应的槽函数。
例:
QString request_url=”www.hao123.com”;
my_request->setUrl(request_url);
reply = manager->get(*my_request);//指定get方式 发送请求
返回结果可通过槽函数获取。
2.post方式
创建网络管理器 QNetworkAccessManager *manager = new QNetworkAccessManager(this);
创建请求 QNetworkRequest *my_request = new QNetworkRequest();
创建请求数据 QByteArray post_data;
设置发送数据:
post_data.append(“user=123456&”);
post_data.append(“password=123456&”);
创建槽连接:connect(manager, SIGNAL(finished(QNetworkReply*)),this,SLOT(parse__data(QNetworkReply*)));
创建url:QString request_url=”www.hao123.com”;
my_request->setUrl(request_url);
发送请求:network_manager->post(network_request, post_data);
槽函数处理
void TestQNetwork::parse_data(QNetworkReply* reply)
{
if(reply ->error()==QNetworkReply::NoError)//发送无误
{
QTextCodec *codec = QTextCodec::codecForName(“utf8”);
QString return_code = codec->toUnicode(reply->readAll());//获取返回数据
reply->deleteLater();//删除否则下次无法发送
}
}