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;
}
Qt使用Cookies对网站操作之Get和POST的更多相关文章
- Qt使用QNetworkAccessManager实现Http操作
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt使用QNetworkAccessManager实现Http操作 本文地址:http ...
- paip.c++ qt 目录遍历以及文件操作
paip.c++ qt 目录遍历以及文件操作 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/a ...
- Qt中与文件目录相关操作
一.与文件目录操作有关操作. Qt中与文件目录相关的操作在QDir中,需加入#include <QDir>语句. QDir::drives()是列出电脑根目录下的所有目录,返回的是QFil ...
- Qt使用QNetworkAccessManager实现Ftp操作
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt使用QNetworkAccessManager实现Ftp操作 本文地址:http: ...
- (四)requests模块的cookies和代理操作
基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取某个人“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到 ...
- Qt之课外实践——文件操作(简单清道夫)
说明:这个小项目是关于文件操作的.主要的功能有:重复文件的查找(根据文件的大小),说白了,就是讲大小相同的文件在一起显示出来,供用户自由的选择删除.这个360云盘里的文件去重还差的很远.还有空文件夹的 ...
- js cookies存取删操作实例
//写cookies函数 function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值 { var Days = 30; //此 cookie 将被保存 ...
- QT 一些非常常用的操作
一 如果在窗体关闭前自行判断是否可关闭二 如何用打开和保存文件对话框 三 如何使用警告.信息等对话框 四 在Windows下Qt里为什么没有终端输出五 想在源代码中直接使用中文 ...
- 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...
随机推荐
- [转]C++四种cast操作符
http://blog.csdn.net/starryheavens/article/details/4617637 C 风格(C-style)强制转型如下: (T) expression 或 T(e ...
- C程序的内存分配
一.预备知识-程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)- 由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. ...
- Using the Repository Pattern with ASP.NET MVC and Entity Framework
原文:http://www.codeguru.com/csharp/.net/net_asp/mvc/using-the-repository-pattern-with-asp.net-mvc-and ...
- 你真的了解try{ return }finally{}中的return?
你真的了解try{ return }finally{}中的return? 今天去逛论坛 时发现了一个很有趣的问题: 谁能给我我解释一下这段程序的结果为什么是:2.而不是:3 代码如下: class ...
- 修改 eclipse 文件编码格式
如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.然而,Eclipse工作空间(workspace)的缺省字符编码是操作系统缺省的编码,简 ...
- 值得珍藏的.NET源码,不保存就没机会了
很早以前,我们通过http://referencesource.microsoft.com/netframework.aspx可以下载到.NET的各版本公开源码,但如今,微软对sscli项目进行了改版 ...
- 前端自动化神器gulp使用记录
1.安装压缩图片插件的时候,由于网络原因,死活安装不成功.由于imagemin本身就包含很多插件,安装的时候卡住了,很是郁闷.如果要压缩png图片,那就单独安装imagemin-pngquant压缩插 ...
- 一行很好的JS代码
[].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.rand ...
- 课程设计之(struts2+Hibernate)航空订票系统
1.题目 课程设计之航空订票系统 为某家机票预订服务商开发一个机票预订和查询管理系统.该系统中的航班和机票信息由多家航空公司负责提供.客户通过上网方式查询航班时间表.机票可用信息.机票折扣信息,可以远 ...
- BZOJ 2339 卡农(组合数学)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2339 题意: 思路: i64 Pow(i64 a,i64 b,i64 mod){ ...