Qt使用Cookies对网站操作之Get和POST

1.添加QNetwork模块:

a.Qt Creator中打开.pro文件添加QT+=Network;

b.VS_Qt中项目属性中Qt Project Settings中Qmodules中勾选”QNetwork library“

2.添加头文件:

#include <QNetworkAccessManager>
#include <QNetworkCookieJar>
#include <QNetworkRequest>
#include <QNetworkReply>

 3.获取Post的cookies

//url为请求网址,content为请求内容,即传递的参数,allcookies应该定义为全局变量,这里为了演示,则定义为局部变量
void NuistMoney::PostLToNet(QString url ,QString content) { QByteArray _content = content.toUtf8(); int _contentLength = content.length(); QNetworkRequest req; req.setUrl(QUrl(url)); req.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded"); req.setHeader(QNetworkRequest::ContentLengthHeader,_contentLength); QNetworkAccessManager nManager; QNetworkReply* getreply=nLManager.post(req,_content); QEventLoop loop; //下载完成后,直接退出子进程 connect(getreply, SIGNAL(finished()), &loop, SLOT(quit())); //子进程开始运行 loop.exec(); //读取所有获取到的网页内容 QTextCodec *codec = QTextCodec::codecForName("utf8");//使用utf8编码,这样才可以显示中文 QString data= codec->toUnicode(getreply->readAll());//获取网页的所有数据 QList<QNetworkCookie> allcookies=nManager.cookieJar()->cookiesForUrl(QUrl(murl)); }

 4.使用cookies:

//根据获取的cookies直接获取murl网址指定的信息
QString NuistMoney::GetToAllNet(QString murl) { //转换cookies成QVariant QVariant var; var.setValue(allcookies); //设置QNetworkRequest的网址和cookies QNetworkRequest req; req.setUrl(QUrl(murl)); req.setHeader(QNetworkRequest::CookieHeader,var); //通过QNetworkAccessManager对象获取网页内容 QNetworkAccessManager nManager; QNetworkReply* getreply=nManager.get(req); //创建一个子进程,以便于提供时间给QNetworkAccessManager对象下载完网页内容 QEventLoop loop; //下载完成后,直接退出子进程 connect(getreply, SIGNAL(finished()), &loop, SLOT(quit())); //子进程开始运行 loop.exec(); //读取所有获取到的网页内容 QTextCodec *codec = QTextCodec::codecForName("utf8");//使用utf8编码,这样才可以显示中文 QString data= codec->toUnicode(getreply->readAll());//获取网页的所有数据 return data; }

 

转载于:https://www.cnblogs.com/striver-zhu/p/4451892.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值